Instead of in activity thread. That way, we can warm up (ie,
precompute cached values) this provider and AndroidBCWorkaroundProvider
(which are installed together) so that the computation doesn't
happen in the app. As a result, the time spent in the first call to
SSLSocketFactory.getDefault() decreases by ~5ms in angler userdebug.
Measured with an app calling SSLSocketFactory.getDefault in onCreate
and timed it with System.currentTimeMillis() .
(cherry picked from commit 69de32071c)
Bug: 28545496
Change-Id: Ic4e11d058fb404eaa92db925a3e765fc3bef7ae2
As pointed out here:
https://code.google.com/p/android/issues/detail?id=69834
registerApp() causes onClientRegistered() to happen before autoConnect
is set. This patch fixes that.
Bug: 28861330
Change-Id: Ie1174c0f224f5084178439420b383164d22d542c
am: 4bc3d32b15
* commit '4bc3d32b15cdcae7685722e7a20007c7aa9ae949':
Make fake libart for misbehaving apps be loaded.
Change-Id: Ia256fdb964f69c029c3b1e8e10ff396f79048cb4
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
This makes the time spent in the first call of an app to
SSLSocketFactory.getDefault() drop from ~240 ms to ~50 ms. In M
it was around ~6ms. This is due to the fact that, while instantiating
the default factory, all providers are initialized.
In order to obtain the timings above, I created an app calling
SSLSocketFactory.getDefault in onCreate and timed it
with System.currentTimeMillis() .
(cherry picked from commit 6cb7b1c476)
Bug: 28545496
Change-Id: Ic5aab3ece609d9fef06fee4ccb83d8371af075b2
am: e8f373e442
* commit 'e8f373e442a301691aa8f35f1dfb46e8149b450b':
Make android_net_NetUtils include what it actually uses.
Change-Id: Iddc38891a66e6a868eef3af4ce025c7d7af1fb15
Introduction of setConfigAsync to set Zen mode config
asynchronously leads to synchronization issues like
ArrayIndexOutOfBoundsException while accessing mSubscriptions.
Change-Id: I6f72d894605498e0a4b48eb58af19851be53b9dc
TelephonyRegistry should notify data status by correct subId,
otherwise in some case, SIM1 data status will be overried
by SIM2 data status.
Such as screen on/off action.If in fact SIM1 is data connected
to download something, but SIM2 is not,then sreen off,
both SIM1 and SIM2 will be notified to update data status.
Then SIM1 data status will be overried by SIM2 to be "no data
connected", before SIM1 data downloading is finished,SIM1
will not be able to show "data conneced" status.
Change-Id: Ia7d0767b3b4520294ee0d024903f7522cb0a0110
Correct and clarify the documentation for ContentValues.
Change-Id: Iddf54da093e97c32da2568eab8802b1b2715303b
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
The documentation incorrectly states that, "[insertWithOnConflict
returns] the primary key of the existing row if the input param
'conflictAlgorithm' = CONFLICT_IGNORE". Unfortunately, SQLite does
not provide such functionality.
Close: https://code.google.com/p/android/issues/detail?id=13045
Change-Id: Ife919c4dcf7bf703b692d338d1fb5844a532dd39
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).
Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.
@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).
(cherry picked from commit 91f4aec3cc)
Bug: 27582395
Change-Id: I0b85c2c84f3e52ffe7864728d083f9c6ea7304ef
Default writeType for GATT characteristic was not being
serialized into Parcel. This cause errors when trying to
write into Characteristic.
Bug: 27910548
Change-Id: Ib2f88cf991123eaea244f16fa36deb0d773c5a33