Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54a32470 authored by Calin Juravle's avatar Calin Juravle Committed by android-build-merger
Browse files

Compile core-apps according to their own "reason" for A/B

am: 9438528d

Change-Id: Iba85d525810252b34bc862017b9ffe578f27fc93
parents 32a092ad 9438528d
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -213,9 +213,19 @@ public class OtaDexoptService extends IOtaDexopt.Stub {
        // Use the package manager install and install lock here for the OTA dex optimizer.
        PackageDexOptimizer optimizer = new OTADexoptPackageDexOptimizer(
                collectingInstaller, mPackageManagerService.mInstallLock, mContext);
        // Make sure that core apps are optimized according to their own "reason".
        // If the core apps are not preopted in the B OTA, and REASON_AB_OTA is not speed
        // (by default is speed-profile) they will be interepreted/JITed. This in itself is not a
        // problem as we will end up doing profile guided compilation. However, some core apps may
        // be loaded by system server which doesn't JIT and we need to make sure we don't
        // interpret-only
        int compilationReason = nextPackage.coreApp
                ? PackageManagerService.REASON_CORE_APP
                : PackageManagerService.REASON_AB_OTA;

        optimizer.performDexOpt(nextPackage, nextPackage.usesLibraryFiles,
                null /* ISAs */, false /* checkProfiles */,
                getCompilerFilterForReason(PackageManagerService.REASON_AB_OTA));
                getCompilerFilterForReason(compilationReason));

        mCommandsForCurrentPackage = collectingConnection.commands;
        if (mCommandsForCurrentPackage.isEmpty()) {