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

Commit fae543b9 authored by yawanng's avatar yawanng
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.

Change-Id: Iae4fc0b6fc73707ada8895b38c3ae3f772ac2cd0
parent 53bed2c7
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);
        }
    }