From ebb42e18e8a9c31c92ef4bca0b38d2447afc5558 Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Wed, 3 Sep 2014 16:37:28 -0700 Subject: [PATCH] Ensure that BackgroundDexOptService can still perform dexopt Bug: 16696554 Change-Id: Id5877618ec9620112fa31dd69016c060bb26b2a7 --- .../java/com/android/server/pm/PackageManagerService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 56392347e040..228c12058f7b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4523,8 +4523,11 @@ public class PackageManagerService extends IPackageManager.Stub { return VMRuntime.getInstructionSet(info.primaryCpuAbi); } - public boolean performDexOpt(String packageName, String instructionSet, boolean updateUsage) { - if (!mLazyDexOpt) { + public boolean performDexOpt(String packageName, String instructionSet, boolean backgroundDexopt) { + boolean dexopt = mLazyDexOpt || backgroundDexopt; + boolean updateUsage = !backgroundDexopt; // Don't update usage if this is just a backgroundDexopt + if (!dexopt && !updateUsage) { + // We aren't going to dexopt or update usage, so bail early. return false; } PackageParser.Package p; @@ -4538,6 +4541,10 @@ public class PackageManagerService extends IPackageManager.Stub { p.mLastPackageUsageTimeInMills = System.currentTimeMillis(); } mPackageUsage.write(false); + if (!dexopt) { + // We aren't going to dexopt, so bail early. + return false; + } targetInstructionSet = instructionSet != null ? instructionSet : getPrimaryInstructionSet(p.applicationInfo); -- 2.11.0