Frameworks/base: Refactor package manager

Minimal cherry-pick to keep things alive.

Bug: 27689078

(cherry picked from commit bdd30d86ef98456161069d11481b2ccd25a11b4e)

Change-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 48a79bb..a91ad51 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -484,7 +484,7 @@
         try {
             for (String classPathElement : classPathElements) {
                 final int dexoptNeeded = DexFile.getDexOptNeeded(
-                        classPathElement, instructionSet, DexFile.COMPILATION_TYPE_FULL);
+                        classPathElement, instructionSet, "speed", false /* newProfile */);
                 if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                     installer.dexopt(classPathElement, Process.SYSTEM_UID, instructionSet,
                             dexoptNeeded, 0 /*dexFlags*/);
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
index 1e4d4a3..8fb05a4 100644
--- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java
+++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
@@ -146,7 +146,7 @@
                 } else {
                     try {
                         dexoptNeeded = DexFile.getDexOptNeeded(path,
-                                dexCodeInstructionSet, DexFile.COMPILATION_TYPE_FULL);
+                                dexCodeInstructionSet, "speed-profile", useJit);
                     } catch (IOException ioe) {
                         Slog.w(TAG, "IOException reading apk: " + path, ioe);
                         return DEX_OPT_FAILED;
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index ef79eb8..7ea9038 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1981,7 +1981,7 @@
 
                         try {
                             int dexoptNeeded = DexFile.getDexOptNeeded(lib, dexCodeInstructionSet,
-                                    DexFile.COMPILATION_TYPE_FULL);
+                                    "speed", false);
                             if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                                 alreadyDexOpted.add(lib);
                                 mInstaller.dexopt(lib, Process.SYSTEM_UID, dexCodeInstructionSet,
@@ -2032,7 +2032,7 @@
                         }
                         try {
                             int dexoptNeeded = DexFile.getDexOptNeeded(path, dexCodeInstructionSet,
-                                    DexFile.COMPILATION_TYPE_FULL);
+                                    "speed", false);
                             if (dexoptNeeded != DexFile.NO_DEXOPT_NEEDED) {
                                 mInstaller.dexopt(path, Process.SYSTEM_UID, dexCodeInstructionSet,
                                         dexoptNeeded, DEXOPT_PUBLIC /*dexFlags*/);