diff options
author | Dave Allison <dallison@google.com> | 2014-03-08 07:26:41 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-03-08 07:26:41 +0000 |
commit | 2d3ddc2ba9f86d795e437ea90dccb59cf1ebfd11 (patch) | |
tree | 00888f18d44e2979ed306ec884d250e83f54a465 /services | |
parent | 9eaaaf0fe3917f4fec85d3e45da37914654847ec (diff) | |
parent | 199670c46a9950bd2e06af43ea082427b542060a (diff) | |
download | frameworks_base-2d3ddc2ba9f86d795e437ea90dccb59cf1ebfd11.zip frameworks_base-2d3ddc2ba9f86d795e437ea90dccb59cf1ebfd11.tar.gz frameworks_base-2d3ddc2ba9f86d795e437ea90dccb59cf1ebfd11.tar.bz2 |
am 199670c4: am 324aa693: am b94904ab: am 3fc3b9fd: Merge "ART profiler usage."
* commit '199670c46a9950bd2e06af43ea082427b542060a':
ART profiler usage.
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/pm/Installer.java | 13 | ||||
-rwxr-xr-x | services/core/java/com/android/server/pm/PackageManagerService.java | 10 |
2 files changed, 19 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index ad6eabd..b7e367b 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -218,6 +218,19 @@ public final class Installer extends SystemService { builder.append(' '); builder.append(uid); builder.append(isPublic ? " 1" : " 0"); + builder.append(" *"); // No pkgName arg present + return execute(builder.toString()); + } + + public int dexopt(String apkPath, int uid, boolean isPublic, String pkgName) { + StringBuilder builder = new StringBuilder("dexopt"); + builder.append(' '); + builder.append(apkPath); + builder.append(' '); + builder.append(uid); + builder.append(isPublic ? " 1" : " 0"); + builder.append(' '); + builder.append(pkgName); return execute(builder.toString()); } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 7f00ce7..cbcf408 100755 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1216,7 +1216,7 @@ public class PackageManagerService extends IPackageManager.Stub { continue; } try { - if (dalvik.system.DexFile.isDexOptNeeded(lib)) { + if (dalvik.system.DexFile.isDexOptNeededInternal(lib, null, false)) { alreadyDexOpted.add(lib); mInstaller.dexopt(lib, Process.SYSTEM_UID, true); didDexOpt = true; @@ -1260,7 +1260,7 @@ public class PackageManagerService extends IPackageManager.Stub { continue; } try { - if (dalvik.system.DexFile.isDexOptNeeded(path)) { + if (dalvik.system.DexFile.isDexOptNeededInternal(path, null, false)) { mInstaller.dexopt(path, Process.SYSTEM_UID, true); didDexOpt = true; } @@ -4088,7 +4088,8 @@ public class PackageManagerService extends IPackageManager.Stub { String path = pkg.mScanPath; int ret = 0; try { - if (forceDex || dalvik.system.DexFile.isDexOptNeeded(path)) { + if (forceDex || dalvik.system.DexFile.isDexOptNeededInternal(path, pkg.packageName, + defer)) { if (!forceDex && defer) { if (mDeferredDexOpt == null) { mDeferredDexOpt = new HashSet<PackageParser.Package>(); @@ -4098,7 +4099,8 @@ public class PackageManagerService extends IPackageManager.Stub { } else { Log.i(TAG, "Running dexopt on: " + pkg.applicationInfo.packageName); final int sharedGid = UserHandle.getSharedAppGid(pkg.applicationInfo.uid); - ret = mInstaller.dexopt(path, sharedGid, !isForwardLocked(pkg)); + ret = mInstaller.dexopt(path, sharedGid, !isForwardLocked(pkg), + pkg.packageName); pkg.mDidDexOpt = true; performed = true; } |