summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brian Carlstrom <bdc@google.com> 2014-09-03 20:02:41 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-09-03 20:02:42 +0000
commite7a21386353d3d89d17af9a505480438a64c319a (patch)
treeeba83bcf1b2b93c5220b37232f7a24bbc58740f7
parentbaaa4ef6f0f509fd3fb97ea37981f64288bcb2d4 (diff)
parent230561eef41047f04dac1a10949f4bcb43915017 (diff)
Merge "Restrict lazy dexopt to eng builds only" into lmp-dev
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 9554afac73d7..56392347e040 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -317,6 +317,7 @@ public class PackageManagerService extends IPackageManager.Stub {
final Context mContext;
final boolean mFactoryTest;
final boolean mOnlyCore;
+ final boolean mLazyDexOpt;
final DisplayMetrics mMetrics;
final int mDefParseFlags;
final String[] mSeparateProcesses;
@@ -1266,6 +1267,7 @@ public class PackageManagerService extends IPackageManager.Stub {
mContext = context;
mFactoryTest = factoryTest;
mOnlyCore = onlyCore;
+ mLazyDexOpt = "eng".equals(SystemProperties.get("ro.build.type"));
mMetrics = new DisplayMetrics();
mSettings = new Settings(context);
mSettings.addSharedUserLPw("android.uid.system", Process.SYSTEM_UID,
@@ -4451,13 +4453,12 @@ public class PackageManagerService extends IPackageManager.Stub {
if (pkgs != null) {
// Filter out packages that aren't recently used.
//
- // The exception is first boot of a non-eng device, which
+ // The exception is first boot of a non-eng device (aka !mLazyDexOpt), which
// should do a full dexopt.
- boolean eng = "eng".equals(SystemProperties.get("ro.build.type"));
- if (eng || (!isFirstBoot() && mPackageUsage.isHistoricalPackageUsageAvailable())) {
+ if (mLazyDexOpt || (!isFirstBoot() && mPackageUsage.isHistoricalPackageUsageAvailable())) {
// TODO: add a property to control this?
long dexOptLRUThresholdInMinutes;
- if (eng) {
+ if (mLazyDexOpt) {
dexOptLRUThresholdInMinutes = 30; // only last 30 minutes of apps for eng builds.
} else {
dexOptLRUThresholdInMinutes = 7 * 24 * 60; // apps used in the 7 days for users.
@@ -4523,6 +4524,9 @@ public class PackageManagerService extends IPackageManager.Stub {
}
public boolean performDexOpt(String packageName, String instructionSet, boolean updateUsage) {
+ if (!mLazyDexOpt) {
+ return false;
+ }
PackageParser.Package p;
final String targetInstructionSet;
synchronized (mPackages) {