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
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
To be able to reuse this code when creating a classloader for
the system_server.
Bug: http://b/27245894
Bug: http://b/27702070
Change-Id: I928175a39a1beb0446d863a5b8f5edf94686e768
Replaced Boolean.valueOf() -> parseBoolean() across frameworks/base
(not including Am.java, which I'm leaving for a separate change).
Also fixed a couple of other valueOf()s in SyncStorageEngine.
Bug: 28289401
Change-Id: I2c6fb39a465885e7e625ed8894b1b9f8a30da5bc
[Backported form internal CL854980]
Specifying the new flag will enable several features in the runtime
required by the native debugger to debug Java and C++ code at the same
time.
The enabled features:
* Force JIT (never use the interpreter)
* Debug info generation
* Disable some optimizations
Change-Id: Iaf5ab649715a0c274bd1b0fc64e483705da53cd0
Zygote process forks every child process for launch the SystemServer and other
applications. When child process is forked, unmount storage inherited
from Zygote process is executed before it gains its own root storage
space.
If Zygote have no storage spaces, unmount operations not needed to
get relevant permission storage space.
Thus unmount is executed only once shortly before the SystemServer is forked.
And the child processes do not unmount its inherited root storage space.
Change-Id: I311ca7ea2c93085f42579f8cf8bdc7ef1d570a04
For the initial release of Marshmallow auto-launching was suppressed
for ChooserActivity if there was only a single choice in order to let
the user confirm what would be launched. In practice, many apps use
ACTION_CHOOSER when they should probably use implicit intents, but
still others have use cases where setting a default doesn't make sense
and the user should still be able to make a choice when one is
available.
As the user confirmation didn't buy much in terms of developer API
expectations (ACTION_CHOOSER being a forced choice) and it adds
speedbumps to existing apps in the ecosystem, revert this change.
Bug 27243827
Change-Id: Id8fd5385d5b1f459e80b0096efe7e2944264739a
* Added GID "wakelock" (3010) to the list of groups the System Server
belongs to.
* Added GID "wakelock" to the list of assigned groups for the
"android.permission.BLUETOOTH_STACK" Android permission.
* Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"
Bug: 25864142
Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
am: e0e81bf407
* commit 'e0e81bf407508ec096c752948f8794af5fd480ca':
Special case system_server to not create the JIT code cache.
Don't use IntegralToString
Track libcore commit 85d69e16fe1e59e50c1ad228e754abf325088362.
Track API changes to java.lang.ref.Reference.
Remove merge markers from preloaded-classes
Move StrictJarFile from libcore to framework
Switch RecoverySystem impl to use sun.security.pkcs
API update for OpenJdk based libcore
Use libcore/known_oj_tags for the javadoc stage.
Stop preloading fortress classes
Use HexDump instead of java.lang.IntegralToString
Add core-oj to the list of core library jars.
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.
(cherry picked from commit 3f72604be8)
Change-Id: I0527d580f5975dca0dfaa6f86fa3695dd49d0849
We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.
Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
(cherry picked from commit 6902052c77)
It is possible that older platforms may have not cleared the lock pattern,
but instead only checked this flag to determine the lock pattern enabled
state. In such cases, upgrading to a platform with that only checks the
lock pattern can lead to the lock screen being re-enabled by accident.
These new methods allow this condition to be identified and resolved.
Bug: 26029690
Change-Id: I8f7ebc0e1915049afe49c219c87010aa38a16244
It was assumed that when a UID had either rx or tx bytes/packets that it would
have the other as well.
Bug:25706750
Change-Id: Iefac59a6bd02876aed9a0bac218d187b81807a95
My previous CL 92280cd309 [1] had a silly
mistake that "tl" is converted to "fil" but "tl_PH" is not.
[1] I94f203bddceb9c87710cb187cc3cc0ee6d9092a5
With this CL, the compatibility rewrite-rule from "tl" to "fil" starts
working regardless of the existence of countly/variant subtags in locale
string. So far the only affected platfrom is API Level 23.
Bug: 20696126
Change-Id: Ica9cd2baac002c406f92331aadd7725d7424046a
We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.
Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
Add system_server to AID_READPROC, to allow system_server to read
/proc entries associated with other UIDs.
Bug: 23310674
Change-Id: I1602b8ee30670cde4ed56e2f901524c105895352
Resolver/ChooserActivity sort apps based on usage factors for the last
two weeks. A score of zero means no usage data within that timeframe.
For system health and UI relevance, don't bother even waking up apps
that have zero scores.
Bug 25126166
Change-Id: Iae34a9667eb1985d6fe986670f3fb3f1177576da
An old optimization in ViewRoot prevents updating a window surface
while a window animation is playing. SystemUI and other small system
components that blend these animations disable this for a smoother
experience. Disable it in ResolverActivity as well.
Bug 24989381
Change-Id: Iac7d1c7b1101ed8d2bc4c3557277a773ce871beb