OSDN Git Service

Update DexFile.getDexOptNeeded in framework
authorCalin Juravle <calin@google.com>
Tue, 8 Mar 2016 15:50:19 +0000 (15:50 +0000)
committerCalin Juravle <calin@google.com>
Tue, 8 Mar 2016 15:50:19 +0000 (15:50 +0000)
Partial cherry pick from commit 693f997cc8b8c2ba8d3ed29627b2641dd86392a5

Change-Id: I0fe34541e3cf77fb6e6dbe689b7cf55cb78dbe05

core/java/com/android/internal/os/ZygoteInit.java
services/core/java/com/android/server/pm/PackageDexOptimizer.java
services/core/java/com/android/server/pm/PackageManagerService.java

index 67ed85a..6317c07 100644 (file)
@@ -484,7 +484,7 @@ public class ZygoteInit {
         try {
             for (String classPathElement : classPathElements) {
                 final int dexoptNeeded = DexFile.getDexOptNeeded(
-                        classPathElement, "*", instructionSet, false /* defer */);
+                        classPathElement, instructionSet, DexFile.COMPILATION_TYPE_FULL);
                 if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                     installer.dexopt(classPathElement, Process.SYSTEM_UID, instructionSet,
                             dexoptNeeded, 0 /*dexFlags*/);
index 6c6871f..1e4d4a3 100644 (file)
@@ -145,8 +145,8 @@ final class PackageDexOptimizer {
                     dexoptNeeded = DexFile.DEX2OAT_NEEDED;
                 } else {
                     try {
-                        dexoptNeeded = DexFile.getDexOptNeeded(path, pkg.packageName,
-                                dexCodeInstructionSet, defer);
+                        dexoptNeeded = DexFile.getDexOptNeeded(path,
+                                dexCodeInstructionSet, DexFile.COMPILATION_TYPE_FULL);
                     } catch (IOException ioe) {
                         Slog.w(TAG, "IOException reading apk: " + path, ioe);
                         return DEX_OPT_FAILED;
index 9a49178..cca65a4 100644 (file)
@@ -1978,7 +1978,8 @@ public class PackageManagerService extends IPackageManager.Stub {
                         }
 
                         try {
-                            int dexoptNeeded = DexFile.getDexOptNeeded(lib, null, dexCodeInstructionSet, false);
+                            int dexoptNeeded = DexFile.getDexOptNeeded(lib, dexCodeInstructionSet,
+                                    DexFile.COMPILATION_TYPE_FULL);
                             if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                                 alreadyDexOpted.add(lib);
                                 mInstaller.dexopt(lib, Process.SYSTEM_UID, dexCodeInstructionSet,
@@ -2028,7 +2029,8 @@ public class PackageManagerService extends IPackageManager.Stub {
                             continue;
                         }
                         try {
-                            int dexoptNeeded = DexFile.getDexOptNeeded(path, null, dexCodeInstructionSet, false);
+                            int dexoptNeeded = DexFile.getDexOptNeeded(path, dexCodeInstructionSet,
+                                    DexFile.COMPILATION_TYPE_FULL);
                             if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                                 mInstaller.dexopt(path, Process.SYSTEM_UID, dexCodeInstructionSet,
                                         dexoptNeeded, DEXOPT_PUBLIC /*dexFlags*/);