am: 8491b4c05d
* commit '8491b4c05d35b15e0a4c1a0ef2396cbb7169698a':
Add support for ICU data pinning in the Zygote
Change-Id: I64ba8a96ab8990a051a68cbdb35f4b1de3738d09
am: 9b1d64410d
* commit '9b1d64410dfddc38ade15d1581de2c89ad79948a':
Add support for ICU data pinning in the Zygote
Change-Id: I53a2d5f885df5cf633a4a63cb2e3c2bc5c75959e
Upstream ICU caches use SoftReferences. On Android this means
that useful cached data initialized in the Zygote are "lost" when
the Zygote GCs and cannot be shared with apps. This change makes use
of an Android patch to ICU to ensure References created during
Zygote initialization are "strong". i.e. they are never collected.
This prevents them being GCd and ensures they can be shared between
applications.
After switching ICU to use strong references, this change
also creates DecimalFormatSymbols objects for common ULocales
(ROOT, US and the user's default, if different). DecimalFormatSymbols
makes use of an ICU Reference cache and this alone has been shown to
improve the construction time of java.text.DecimalFormat by 1-1.5
milliseconds on a Seed device. This saving applies the first time one
is created in each app for each locale, and again if SoftReferences
have been cleared.
The cost to the heap size of the Zygote has been measured at ~107k.
This value will change as more caches are switched to use the new
CacheValue class.
Formatting is typically performed on the UI thread and the intention
of this change is to reduce app start up time and jank in apps like
the Dialer which do a lot of formatting when scrolling lists. The
change may also enable more virtual memory page-sharing between
apps, though this is not the specific goal.
Bug: 28326526
Change-Id: Ia2c73f6525f05b1aa81e57a31eed1616decf6bb5
am: 0cfbb7643e
* commit '0cfbb7643ef81cc8d1fd72bfe7c651d0e5e04949':
Document that SurfaceView is synchronous in N
Change-Id: I508585ec749b0a5d4e241757d655349b09b31566
am: 45165c9373
* commit '45165c9373f1bf2dbe0c3f11b271daa24414ea35':
Demote the log in ProcessState.ensureNotDead from a wtf to a warning.
@hide SystemHealthManager.from
Change-Id: Id56c7ee80254eac26132956ef62b83c405a0e2f8
am: 718ba309cf
* commit '718ba309cfc9bbc3bbf785bbe5dfc1049ce02d20':
Adjust Notification APIs per API council
Change-Id: I282bb2b6e4718f7b1afb3eb418a8d37deaa457b0
Since LocaleList needs to depend on android.os.Parcelable, we cannot let
that class belong to "android.util" package, which causes layering
violation.
Bug: 28819696
Change-Id: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
We can't use the same instance on both the main and the background
thread, as this will lead to problems.
Change-Id: Ieec525f028df2d0596667126d8f5004773461517
Fixes: 28745682
Also fixes a slight bug where a CharSequence extra
was retrieved as a string.
Change-Id: I8a40ab1934b8a20355c3cd4afd66a4a7b91fb517
Fixes: 28775580
Fixes: 28775582
It's raising alarm bells but there isn't much we can do without a lot
of rewriting inside the ActivityManager. The only consequence is stats
that are off by a little bit.
Bug: 28581070
Change-Id: If51568c3a708a907ceef6452e7d45599a57454f7
Hiding the APIs for now since we're not releasing freeform yet and it's
better not to expose them now in case we'll decide to change them later.
Bug: 28774476
Change-Id: Ic2de33c5a611a515fc1c72535587ebf2e0a03a7f
There are few paths I can see to get a null intent down into
the framework at this point. Add in some checks and reports
at those places to mitigate and report such problems.
Change-Id: If235bf342558321d3fabe9363fcebb2bcea18df1
am: 4920698e17
* commit '4920698e17dc8aacd1b0743d313383a8ee1a3400':
Make some of the UID-based VPN code reusable
Change-Id: I3f1b1a08059aa58cb76db6cdd070b103024b9bf3
The method warmUpJcaProviders arrived here from both nyc-dev
and aosp/master, removing duplication.
Change-Id: I2d91ee38fe93f600bec89651416e84ab83ef9d4a