am: 7e91ec88ef
* commit '7e91ec88ef61343345defe58ea968228b10d003a':
Fix attr link in support lib docs.
Revert "Revert "docs: Creating new support library revision history page""
Change-Id: I21b98fdba0187d4c941d93d67c14e4cf74842729
am: 7e91ec88ef
* commit '7e91ec88ef61343345defe58ea968228b10d003a':
Fix attr link in support lib docs.
Revert "Revert "docs: Creating new support library revision history page""
Change-Id: Ie2bdbbb96678a1e5cf6fe5e21d722335749cd7f7
am: cc8c594a5c
* commit 'cc8c594a5c5cb255907cb2eaddb37ea1321fa104':
Handle PhoneStatusBarPolicy user switch callbacks on main thread
Change-Id: I816905527f5061e7af2fe14b42f9c0397036bdb7
am: 5201a6246d
* commit '5201a6246d12830d0bb766d59e22b0320f2f99dc':
Handle PhoneStatusBarPolicy user switch callbacks on main thread
Change-Id: I561be9cf58d0a43abd43d98cf1ee717241f10ef1
Foreign dex markers are named in the runtime by calling realpath(3) on the input
dexfile path and replacing "/" with "@". On the Java side, we're using
File.getCanonicalPath, which is similar but isn't quite the same. It tries
to call realpath() directly, but if that fails, it resorts to a series of
increasingly desperate measures to calculate a "canonical path". We just
use realpath instead.
Also, don't attempt to delete a profile if canonicalization fails.
bug: 28740848
Change-Id: Ie5d5af590187e793db633342a42b923865e5c005
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
am: 05f2a86b3d
* commit '05f2a86b3dab0872e5c318777b665b2435876d8c':
Refactor how StatusBarPolicy knows if keyguard is visible.
Change-Id: I08f80e52a66e80e7a0db22a111bc2609cb4b1e33
am: d1d0c558b7
* commit 'd1d0c558b78f3504919c77140ee45b71cadfbe38':
Refactor how StatusBarPolicy knows if keyguard is visible.
Change-Id: Icc3aeb92780317c8fa4259434e96d17bf16448f3
am: bbd26bc023
* commit 'bbd26bc023992ee7bc6a0e682d4a343dfe3dc848':
Refactor how StatusBarPolicy knows if keyguard is visible.
Change-Id: Ib230238ee0ecb727ef716d844592bda0a86ae56d
am: bbd26bc023
* commit 'bbd26bc023992ee7bc6a0e682d4a343dfe3dc848':
Refactor how StatusBarPolicy knows if keyguard is visible.
Change-Id: I782d354549ba3185d4779a2e8b3ac6d0724e22ec
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