summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDave Allison <dallison@google.com>2014-01-30 14:19:51 -0800
committerDave Allison <dallison@google.com>2014-03-07 12:32:44 -0800
commit0efbd9a463c848118c7685f4bfc8765a82caa761 (patch)
tree4c091a048fd013b99927089c5f2127868c2b6156 /services
parent5de03b18ea455c0250cbd01912282f28d8635910 (diff)
downloadframeworks_base-0efbd9a463c848118c7685f4bfc8765a82caa761.zip
frameworks_base-0efbd9a463c848118c7685f4bfc8765a82caa761.tar.gz
frameworks_base-0efbd9a463c848118c7685f4bfc8765a82caa761.tar.bz2
ART profiler usage.
This is a change to add args to some of the profiler related functions, including installd commands. Also read properties and set command line options for the runtime profiling parameters. Changed calls to isDexOptNeeded() to isDexOptNeededInternal(). This needs additional arguments passed for profiles. Bug: 12877748 Change-Id: I1a426c9309d760bac0cf92daa298defee62287c1 Conflicts: core/jni/AndroidRuntime.cpp
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/pm/Installer.java13
-rwxr-xr-xservices/java/com/android/server/pm/PackageManagerService.java10
2 files changed, 19 insertions, 4 deletions
diff --git a/services/java/com/android/server/pm/Installer.java b/services/java/com/android/server/pm/Installer.java
index 11a6498..54acda2 100644
--- a/services/java/com/android/server/pm/Installer.java
+++ b/services/java/com/android/server/pm/Installer.java
@@ -208,6 +208,19 @@ public final class Installer {
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/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index d8b4f1a..1bac1db 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -1209,7 +1209,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;
@@ -1253,7 +1253,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;
}
@@ -3988,7 +3988,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>();
@@ -3998,7 +3999,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;
}