diff options
| author | 2014-09-03 20:02:41 +0000 | |
|---|---|---|
| committer | 2014-09-03 20:02:42 +0000 | |
| commit | e7a21386353d3d89d17af9a505480438a64c319a (patch) | |
| tree | eba83bcf1b2b93c5220b37232f7a24bbc58740f7 | |
| parent | baaa4ef6f0f509fd3fb97ea37981f64288bcb2d4 (diff) | |
| parent | 230561eef41047f04dac1a10949f4bcb43915017 (diff) | |
Merge "Restrict lazy dexopt to eng builds only" into lmp-dev
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 12 |
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) { |