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

Commit 8e41a2de authored by yawanng's avatar yawanng Committed by Calin Juravle
Browse files

Notify IORap without including packages for secondary dex opt.

The current secondary dex opt doesn't distinct between
opt performed and skipped, which causes unnecessary traces
purge for IORap.

Bug:161633001
Test: manually trigger bg-dexopt via 'adb shell cmd jobscheduler run -f
android 800' and check the log.


(cherry picked from commit ff800a36)
Merged-In: Iae4fc0b6fc73707ada8895b38c3ae3f772ac2cd0
Change-Id: Iae4fc0b6fc73707ada8895b38c3ae3f772ac2cd0
parent f7a4faa2
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -337,6 +337,7 @@ public class BackgroundDexOptService extends JobService {
    private int idleOptimizePackages(PackageManagerService pm, ArraySet<String> pkgs,
            long lowStorageThreshold) {
        ArraySet<String> updatedPackages = new ArraySet<>();
        ArraySet<String> updatedPackagesDueToSecondaryDex = new ArraySet<>();

        try {
            final boolean supportSecondaryDex = supportSecondaryDex();
@@ -391,11 +392,14 @@ public class BackgroundDexOptService extends JobService {
            }

            int secondaryResult = optimizePackages(pm, pkgs, lowStorageThreshold,
                    /*isForPrimaryDex*/ false, updatedPackages);
                    /*isForPrimaryDex*/ false, updatedPackagesDueToSecondaryDex);
            return secondaryResult;
        } finally {
            // Always let the pinner service know about changes.
            notifyPinService(updatedPackages);
            // Only notify IORap the primary dex opt, because we don't want to
            // invalidate traces unnecessary due to b/161633001 and that it's
            // better to have a trace than no trace at all.
            notifyPackagesUpdated(updatedPackages);
        }
    }