am: a90127dcc8
* commit 'a90127dcc8b5d1b9a7eb7a1c1d5eed9c87eb36ed':
Add support for ICU data pinning in the Zygote
Change-Id: I444be1abe083b84a7d411f87ff9a6865e96344ff
am: c724f2207f
* commit 'c724f2207f9186f25eeac5b2131e469dafb3bc90':
Add support for ICU data pinning in the Zygote
Change-Id: I2c14d6dad84ed2bf5d6186ab795d54184bb483cb
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: 44f88692b7
* commit '44f88692b7054be6eb3dfeed5bf428c8c36ece5f':
Document that SurfaceView is synchronous in N
Change-Id: I62d5f1eed6441b99edb5054e8d6ee3858663bc38
am: 77f706980e
* commit '77f706980ed2dff9bfb916382be26204b589b96e':
Document that SurfaceView is synchronous in N
Change-Id: I357c8be635a5e78f42997bfc4c96509729504c35
am: 269f64079b
* commit '269f64079b34eb178a33dba306d610c8dfb322c4':
Demote the log in ProcessState.ensureNotDead from a wtf to a warning.
@hide SystemHealthManager.from
Change-Id: I9d6419d9c587eaca1577cef82a1ec054a6bb3d6c
am: 0cfbb7643e
* commit '0cfbb7643ef81cc8d1fd72bfe7c651d0e5e04949':
Document that SurfaceView is synchronous in N
Change-Id: I508585ec749b0a5d4e241757d655349b09b31566
am: 0cfbb7643e
* commit '0cfbb7643ef81cc8d1fd72bfe7c651d0e5e04949':
Document that SurfaceView is synchronous in N
Change-Id: I1e4a36d64be663103c3150c86a75e2baa51fa4c4
am: 6b10cec210
* commit '6b10cec2108746e15388125fdd6fa0cbfd6cb28d':
Demote the log in ProcessState.ensureNotDead from a wtf to a warning.
@hide SystemHealthManager.from
Change-Id: Ifc94199cc5ad69af73871cc012aa2dac31b6f67b
am: 45165c9373
* commit '45165c9373f1bf2dbe0c3f11b271daa24414ea35':
Demote the log in ProcessState.ensureNotDead from a wtf to a warning.
@hide SystemHealthManager.from
Change-Id: Ibb36bb8d2c32c0fa8ec85eb093b8281f349158fb
am: 45165c9373
* commit '45165c9373f1bf2dbe0c3f11b271daa24414ea35':
Demote the log in ProcessState.ensureNotDead from a wtf to a warning.
@hide SystemHealthManager.from
Change-Id: Id56c7ee80254eac26132956ef62b83c405a0e2f8
am: 16e54ef2ff
* commit '16e54ef2ffb49fe090a8059bce6494e9fba2d4fb':
Adjust Notification APIs per API council
Change-Id: Iad10ffc7346eb3b2d3d8f9b8478f2e67bc6c641c
am: 3a0f4f4b64
* commit '3a0f4f4b642087138b59a18612be437376652c92':
Adjust Notification APIs per API council
Change-Id: I20a1e1a542f48532be1b9d71bb5fb2eb0498b395
am: 718ba309cf
* commit '718ba309cfc9bbc3bbf785bbe5dfc1049ce02d20':
Adjust Notification APIs per API council
Change-Id: I282bb2b6e4718f7b1afb3eb418a8d37deaa457b0
am: 718ba309cf
* commit '718ba309cfc9bbc3bbf785bbe5dfc1049ce02d20':
Adjust Notification APIs per API council
Change-Id: Ic85fdd92c691f7b30cd73a9e1a7f147fcf55c3c5
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