Commit Graph

5254 Commits

Author SHA1 Message Date
Sergio Giro
80755a5a25 ZygoteInit: install AndroidKeyStoreProvider in the Zygote
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
2016-05-23 11:24:34 +01:00
Neil Fuller
41c9dc3b69 Add support for ICU data pinning in the Zygote
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
2016-05-18 11:15:11 +01:00
Sergio Giro
b07595d194 ZygoteInit: warm up JCA providers during preload
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
2016-05-17 14:39:44 +01:00
Sebastian Kaspari
eb101a700c FloatingToolbar: Fix javadoc for closeOverflow().
Change-Id: I450fc603ae5fe49f08f580594352cc1120cc104d
2016-04-28 16:34:33 +00:00
Dimitry Ivanov
eb5866d4b0 Create linker namespace for the system server classloader
Bug: http://b/27702070
Change-Id: I12c9448e877202937cf558de75042bcb46f6a933
2016-04-27 10:22:09 -07:00
Dimitry Ivanov
5d7d777fa6 Extract pathclassloader initialization to a separate class
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
2016-04-26 13:16:54 -07:00
Tobias Thierer
ca01820735 Avoid instantiations of Boolean that are immediately unboxed.
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
2016-04-22 14:21:12 +01:00
Andreas Gampe
288e3f50dd Frameworks/base: Refactor package manager
Minimal cherry-pick to keep things alive.

Bug: 27689078

(cherry picked from commit bdd30d86ef)

Change-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa
2016-03-29 11:05:03 -07:00
Elliott Hughes
2a8749354a Merge "Changes of root storage space unmounting time on Zygote Process" 2016-03-21 21:06:09 +00:00
David Srbecky
1b4afc275f Merge "[DO NOT MERGE] Add flag to "am start" to enable native debugging" 2016-03-16 17:11:09 +00:00
Ian Rogers
9b222c8fda Extra generic type information to aid certain javacs.
In particular this is needed for the code to compile using the error prone
analyzer.

Change-Id: I09904705ced909ead750cb30d0f96c994132a51c
2016-03-15 21:09:40 -07:00
Tamas Berghammer
21bdaf14a2 [DO NOT MERGE] Add flag to "am start" to enable native debugging
[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
2016-03-14 11:48:40 +00:00
Calin Juravle
76ac402779 Merge "Update DexFile.getDexOptNeeded in framework" 2016-03-09 11:57:36 +00:00
Calin Juravle
6ce213fe2c Update DexFile.getDexOptNeeded in framework
Partial cherry pick from commit 693f997cc8

Change-Id: I0fe34541e3cf77fb6e6dbe689b7cf55cb78dbe05
2016-03-08 15:50:19 +00:00
Adam Powell
68ab418cb4 Merge "Restore auto-launch behavior for ACTION_CHOOSER with a single choice"
am: 9d39648de4

* commit '9d39648de4c9070ddc770d301e822bdc72db4ba9':
  Restore auto-launch behavior for ACTION_CHOOSER with a single choice
2016-03-07 23:50:51 +00:00
doheon1.lee
289e4fa658 Changes of root storage space unmounting time on Zygote Process
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
2016-02-22 08:42:02 +09:00
Adam Powell
2f6ec22f67 Restore auto-launch behavior for ACTION_CHOOSER with a single choice
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
2016-02-18 14:41:41 -08:00
Pavlin Radoslavov
91fc6d1f9c Merge "Use GID "wakelock" to control access to kernel wakelock"
am: 60d142c54b

* commit '60d142c54b16be08d8352c7fd1510538014839f7':
  Use GID "wakelock" to control access to kernel wakelock
2015-12-29 01:31:16 +00:00
Pavlin Radoslavov
fbd5904ce6 Use GID "wakelock" to control access to kernel wakelock
* 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
2015-12-28 15:14:44 -08:00
Narayan Kamath
f59c02a65e Merge changes from topic \'aosp-merge-24-12\'
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.
2015-12-24 04:07:42 -08:00
Nicolas Geoffray
a877235156 Special case system_server to not create the JIT code cache.
(cherry picked from commit 3c43b38633)

Change-Id: Ic7b0887f9edcb950fad98ccbe66cab6949fbdc52
2015-12-22 13:45:09 +00:00
Przemyslaw Szczepaniak
e69a31d750 Use HexDump instead of java.lang.IntegralToString
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.

(cherry picked from commit 3f72604be8)

Change-Id: I0527d580f5975dca0dfaa6f86fa3695dd49d0849
2015-12-22 13:10:55 +00:00
Adam Lesinski
72c1a0a110 Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev am: 1d6d4c5a69
am: d5808d0d35

* commit 'd5808d0d356c5c7263f1ad0982a221c7a0f1df07':
  DO NOT MERGE: Fix batterystats battery level int packing
2015-12-16 00:05:41 +00:00
Adam Lesinski
d5808d0d35 Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev
am: 1d6d4c5a69

* commit '1d6d4c5a695051ccb9b455306b155bad5d6f136a':
  DO NOT MERGE: Fix batterystats battery level int packing
2015-12-15 23:57:13 +00:00
Adam Lesinski
5f8c8186ec DO NOT MERGE: Fix batterystats battery level int packing
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)
2015-12-15 22:12:10 +00:00
Bryce Lee
0510ad1bc9 Allow access to deprecated LOCK_PATTERN_ENABLED flag. am: 4614596a39 am: 36393a5674
am: 4ab8b0696a

* commit '4ab8b0696a4383b7dec2fc2dc4f17596bcd9216a':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-15 00:11:06 +00:00
Bryce Lee
4ab8b0696a Allow access to deprecated LOCK_PATTERN_ENABLED flag. am: 4614596a39
am: 36393a5674

* commit '36393a5674bf50b351b5961a194ce2814ca00140':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-14 23:57:38 +00:00
Bryce Lee
36393a5674 Allow access to deprecated LOCK_PATTERN_ENABLED flag.
am: 4614596a39

* commit '4614596a395b6c86fff3f35a07edda2e848d743c':
  Allow access to deprecated LOCK_PATTERN_ENABLED flag.
2015-12-14 23:43:54 +00:00
Bryce Lee
4614596a39 Allow access to deprecated LOCK_PATTERN_ENABLED flag.
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
2015-12-14 14:39:10 -08:00
Adam Lesinski
0b754d122c Prevent DivideByZero error in BatteryStatsImpl am: ba88e68fe4
am: 4e4ff058c1

* commit '4e4ff058c1a0b4b77f468a206a790bb6f084f616':
  Prevent DivideByZero error in BatteryStatsImpl
2015-12-10 14:54:38 -08:00
Adam Lesinski
4e4ff058c1 Prevent DivideByZero error in BatteryStatsImpl
am: ba88e68fe4

* commit 'ba88e68fe47b66f1fc5d10c15f04f20fe662399e':
  Prevent DivideByZero error in BatteryStatsImpl
2015-12-10 14:47:09 -08:00
Adam Lesinski
ba88e68fe4 Prevent DivideByZero error in BatteryStatsImpl
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
2015-12-10 00:48:24 +00:00
Amit Mahajan
0dfeda60c0 Merge "Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()" into mnc-dr1.5-dev am: cd2cc9aa9b
am: d515b124f7

* commit 'd515b124f7f966a3e4725dc6f6179ade869df636':
  Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
2015-12-07 23:32:22 +00:00
Amit Mahajan
d515b124f7 Merge "Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()" into mnc-dr1.5-dev
am: cd2cc9aa9b

* commit 'cd2cc9aa9bfdc21a06ffd7049a4b4ad07bbf6886':
  Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
2015-12-07 23:10:55 +00:00
Yohei Yukawa
30e321b54a Merge "Fix special handling of a fake language code "tl"."
am: 9fd2af6b32

* commit '9fd2af6b323ef98695701a8bcfdd3ca1c4dd7965':
  Fix special handling of a fake language code "tl".
2015-12-03 19:10:30 +00:00
Yohei Yukawa
ed65bc0c62 Fix special handling of a fake language code "tl".
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
2015-12-02 18:22:41 -08:00
Adam Lesinski
6902052c77 DO NOT MERGE ANYWHERE: Fix batterystats battery level int packing
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
2015-11-20 10:58:02 -08:00
Amit Mahajan
8ed715e31e Adding StateMachine.hasMessages(), StateMachine.hasDeferredMessages()
Bug: 23067429
Change-Id: Ia66fd1a6ff248520e86f6e502767b22c4d9d4814
2015-11-18 19:56:47 +00:00
Nicolas Geoffray
5485d81578 Merge "Remove DEBUG_JIT from Zygote flags."
am: cf49583bd0

* commit 'cf49583bd02d01b5d7aa57912d5469b466722c65':
  Remove DEBUG_JIT from Zygote flags.
2015-11-18 10:54:19 +00:00
Nicolas Geoffray
245ec92b65 Remove DEBUG_JIT from Zygote flags.
The flag is being obsolete by the move to JIT.

(cherry picked from commit 9abbf45c8d)

Change-Id: I3ce4577e81f91e9dd55d44116e0f9e2014bd00b8
2015-11-18 10:07:53 +00:00
Todd Kennedy
3b91bd2173 resolved conflicts for 7de7e0b0 to stage-aosp-master
(cherry picked from commit 9f86026444)

Change-Id: I4e45e5bbaebb98b0e740167eaf7517f99d917f30
2015-11-16 10:43:53 -08:00
Nick Kralevich
02cc328d9d Merge "system_server: allow /proc read access to other UIDs"
am: 51b48b3877

* commit '51b48b38774b8babe339890e1c888dfd8647ee72':
  system_server: allow /proc read access to other UIDs
2015-11-09 20:28:30 +00:00
Nick Kralevich
368513fa99 system_server: allow /proc read access to other UIDs
Add system_server to AID_READPROC, to allow system_server to read
/proc entries associated with other UIDs.

Bug: 23310674
Change-Id: I1602b8ee30670cde4ed56e2f901524c105895352
2015-11-07 17:04:04 -08:00
Adam Powell
d6db05e4b1 Merge "Don\'t query ChooserTargetService apps that haven\'t been used recently" into mnc-dr-dev am: b8cfc12c3f am: 8c7b3e872b
am: f998b602bb

* commit 'f998b602bb0145ab7c0a0556795bbaaf69661c74':
  Don't query ChooserTargetService apps that haven't been used recently
2015-10-21 21:01:18 +00:00
Adam Powell
8c7b3e872b Merge "Don\'t query ChooserTargetService apps that haven\'t been used recently" into mnc-dr-dev
am: b8cfc12c3f

* commit 'b8cfc12c3f0b83e9d00b1f324be4ff5c977645ce':
  Don't query ChooserTargetService apps that haven't been used recently
2015-10-21 20:47:14 +00:00
Adam Powell
3a09c52914 Don't query ChooserTargetService apps that haven't been used recently
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
2015-10-21 13:21:28 -07:00
Adam Powell
f94ce52404 Merge "DO NOT MERGE Fix jank when intent resolver/chooser windows animate in" into mnc-dr-dev am: 4ecfbcfdea am: eeed032eae
am: 2a61cc8032

* commit '2a61cc803203e605b1f4a017deec0aedb21605f3':
  DO NOT MERGE Fix jank when intent resolver/chooser windows animate in
2015-10-20 01:49:35 +00:00
Adam Powell
eeed032eae Merge "DO NOT MERGE Fix jank when intent resolver/chooser windows animate in" into mnc-dr-dev
am: 4ecfbcfdea

* commit '4ecfbcfdeaed67c3a08002069a530fa58582a48b':
  DO NOT MERGE Fix jank when intent resolver/chooser windows animate in
2015-10-20 00:54:34 +00:00
Adam Powell
918b90108b DO NOT MERGE Fix jank when intent resolver/chooser windows animate in
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
2015-10-19 16:56:20 -07:00
Adrian Roos
2de89ae843 am 3c439c72: am 85fae34e: am 70ea8578: Merge "Fix wrongly laid out navigation color view" into mnc-dr-dev
* commit '3c439c720d460266358c10d8d2eea9ef9e79beb0':
  Fix wrongly laid out navigation color view
2015-10-16 21:12:06 +00:00