summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDave Allison <dallison@google.com>2014-03-08 02:00:39 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-08 02:00:39 +0000
commit199670c46a9950bd2e06af43ea082427b542060a (patch)
tree635bb233b6112771b3a78d2f595e3bc1b5b52182 /services
parenta81ee86b5881191d4c6685f9c261d612495a96c3 (diff)
parent324aa693b82656809b97e307676adbbce37c3d95 (diff)
downloadframeworks_base-199670c46a9950bd2e06af43ea082427b542060a.zip
frameworks_base-199670c46a9950bd2e06af43ea082427b542060a.tar.gz
frameworks_base-199670c46a9950bd2e06af43ea082427b542060a.tar.bz2
am 324aa693: am b94904ab: am 3fc3b9fd: Merge "ART profiler usage."
* commit '324aa693b82656809b97e307676adbbce37c3d95': ART profiler usage.
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/pm/Installer.java13
-rwxr-xr-xservices/core/java/com/android/server/pm/PackageManagerService.java10
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 cf02d5d..3f179e0 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;
}
@@ -4021,7 +4021,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>();
@@ -4031,7 +4032,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;
}