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

Commit 7c786822 authored by Marco Ballesio's avatar Marco Ballesio
Browse files

Rename AppCompactor to CachedAppOptimizer

The AppCompactor class is suitable to handling more than just
compaction, hence the renaming to a more generic set of tasks.

Change-Id: I5424989e62c78383a067cf1bd7d529c093de6b97
Bug: 143308662
Test: manual, atest CachedAppOptimizerTest
parent c98d0499
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -3066,18 +3066,18 @@ HSPLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/i
HSPLcom/android/server/am/AppBindRecord;->dumpInIntentBind(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/am/AppBindRecord;->toString()Ljava/lang/String;
PLcom/android/server/am/AppBindRecord;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/am/AppCompactor$1;->onPropertyChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/server/am/AppCompactor$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/am/AppCompactor;-><init>(Lcom/android/server/am/ActivityManagerService;)V
HSPLcom/android/server/am/AppCompactor;->access$1000(Lcom/android/server/am/AppCompactor;)V
HSPLcom/android/server/am/AppCompactor;->access$700(Lcom/android/server/am/AppCompactor;)Lcom/android/server/am/ActivityManagerService;
HSPLcom/android/server/am/AppCompactor;->access$800(Lcom/android/server/am/AppCompactor;)Ljava/util/ArrayList;
HSPLcom/android/server/am/AppCompactor;->access$900(Lcom/android/server/am/AppCompactor;)Ljava/util/Random;
PLcom/android/server/am/AppCompactor;->dump(Ljava/io/PrintWriter;)V
HSPLcom/android/server/am/AppCompactor;->init()V
HSPLcom/android/server/am/AppCompactor;->updateCompactionThrottles()V
HSPLcom/android/server/am/AppCompactor;->updateUseCompaction()V
HSPLcom/android/server/am/AppCompactor;->useCompaction()Z
PLcom/android/server/am/CachedAppOptimizer$1;->onPropertyChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/am/CachedAppOptimizer;-><init>(Lcom/android/server/am/ActivityManagerService;)V
HSPLcom/android/server/am/CachedAppOptimizer;->access$1000(Lcom/android/server/am/CachedAppOptimizer;)V
HSPLcom/android/server/am/CachedAppOptimizer;->access$700(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/ActivityManagerService;
HSPLcom/android/server/am/CachedAppOptimizer;->access$800(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/ArrayList;
HSPLcom/android/server/am/CachedAppOptimizer;->access$900(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/Random;
PLcom/android/server/am/CachedAppOptimizer;->dump(Ljava/io/PrintWriter;)V
HSPLcom/android/server/am/CachedAppOptimizer;->init()V
HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactionThrottles()V
HSPLcom/android/server/am/CachedAppOptimizer;->updateUseCompaction()V
HSPLcom/android/server/am/CachedAppOptimizer;->useCompaction()Z
PLcom/android/server/am/AppErrorDialog$1;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/am/AppErrorDialog;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/AppErrorDialog$Data;)V
PLcom/android/server/am/AppErrorDialog;->onClick(Landroid/view/View;)V
@@ -18632,9 +18632,9 @@ Lcom/android/server/am/ActivityManagerService$UiHandler;
Lcom/android/server/am/ActivityManagerService$UidObserverRegistration;
Lcom/android/server/am/ActivityManagerService;
Lcom/android/server/am/AppBindRecord;
Lcom/android/server/am/AppCompactor$1;
Lcom/android/server/am/AppCompactor$MemCompactionHandler;
Lcom/android/server/am/AppCompactor;
Lcom/android/server/am/CachedAppOptimizer$1;
Lcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;
Lcom/android/server/am/CachedAppOptimizer;
Lcom/android/server/am/AppErrorDialog$Data;
Lcom/android/server/am/AppErrorResult;
Lcom/android/server/am/AppErrors$BadProcessInfo;
+1 −1
Original line number Diff line number Diff line
@@ -538,7 +538,7 @@ Lcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V
Lcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z
Lcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration;
Lcom/android/server/am/OomAdjuster;->applyOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZJJ)Z
Lcom/android/server/am/AppCompactor;->useCompaction()Z
Lcom/android/server/am/CachedAppOptimizer;->useCompaction()Z
Lcom/android/server/am/ProcessList;->procStatesDifferForMem(II)Z
Lcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V
Lcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z
+5 −5
Original line number Diff line number Diff line
@@ -2555,7 +2555,7 @@ public class ActivityManagerService extends IActivityManager.Stub
            Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(),
                    Process.THREAD_GROUP_SYSTEM);
            Process.setThreadGroupAndCpuset(
                    mOomAdjuster.mAppCompact.mCompactionThread.getThreadId(),
                    mOomAdjuster.mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(),
                    Process.THREAD_GROUP_SYSTEM);
        } catch (Exception e) {
            Slog.w(TAG, "Setting background thread cpuset failed");
@@ -5304,7 +5304,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                                String data, Bundle extras, boolean ordered,
                                boolean sticky, int sendingUser) {
                            synchronized (ActivityManagerService.this) {
                                mOomAdjuster.mAppCompact.compactAllSystem();
                                mOomAdjuster.mCachedAppOptimizer.compactAllSystem();
                                requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false);
                            }
                        }
@@ -9000,7 +9000,7 @@ public class ActivityManagerService extends IActivityManager.Stub
            final long timeSinceLastIdle = now - mLastIdleTime;
            // Compact all non-zygote processes to freshen up the page cache.
            mOomAdjuster.mAppCompact.compactAllSystem();
            mOomAdjuster.mCachedAppOptimizer.compactAllSystem();
            final long lowRamSinceLastIdle = getLowRamTimeSinceIdle(now);
            mLastIdleTime = now;
@@ -10020,7 +10020,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        synchronized(this) {
            mConstants.dump(pw);
            mOomAdjuster.dumpAppCompactorSettings(pw);
            mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
            pw.println();
            if (dumpAll) {
                pw.println("-------------------------------------------------------------------------------");
@@ -10425,7 +10425,7 @@ public class ActivityManagerService extends IActivityManager.Stub
            } else if ("settings".equals(cmd)) {
                synchronized (this) {
                    mConstants.dump(pw);
                    mOomAdjuster.dumpAppCompactorSettings(pw);
                    mOomAdjuster.dumpCachedAppOptimizerSettings(pw);
                }
            } else if ("services".equals(cmd) || "s".equals(cmd)) {
                if (dumpClient) {
+12 −12
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;

public final class AppCompactor {
public final class CachedAppOptimizer {

    // Flags stored in the DeviceConfig API.
    @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction";
@@ -122,7 +122,7 @@ public final class AppCompactor {
     * that will wipe out the cpuset assignment for system_server threads.
     * Accordingly, this is in the AMS constructor.
     */
    final ServiceThread mCompactionThread;
    final ServiceThread mCachedAppOptimizerThread;

    private final ArrayList<ProcessRecord> mPendingCompactionProcesses =
            new ArrayList<ProcessRecord>();
@@ -214,15 +214,15 @@ public final class AppCompactor {
    private int mPersistentCompactionCount;
    private int mBfgsCompactionCount;

    public AppCompactor(ActivityManagerService am) {
    public CachedAppOptimizer(ActivityManagerService am) {
        mAm = am;
        mCompactionThread = new ServiceThread("CompactionThread",
        mCachedAppOptimizerThread = new ServiceThread("CachedAppOptimizerThread",
                THREAD_PRIORITY_FOREGROUND, true);
        mProcStateThrottle = new HashSet<>();
    }

    @VisibleForTesting
    AppCompactor(ActivityManagerService am, PropertyChangedCallbackForTest callback) {
    CachedAppOptimizer(ActivityManagerService am, PropertyChangedCallbackForTest callback) {
        this(am);
        mTestCallback = callback;
    }
@@ -243,7 +243,7 @@ public final class AppCompactor {
            updateFullDeltaRssThrottle();
            updateProcStateThrottle();
        }
        Process.setThreadGroupAndCpuset(mCompactionThread.getThreadId(),
        Process.setThreadGroupAndCpuset(mCachedAppOptimizerThread.getThreadId(),
                Process.THREAD_GROUP_SYSTEM);
    }

@@ -258,7 +258,7 @@ public final class AppCompactor {

    @GuardedBy("mAm")
    void dump(PrintWriter pw) {
        pw.println("AppCompactor settings");
        pw.println("CachedAppOptimizer settings");
        synchronized (mPhenotypeFlagLock) {
            pw.println("  " + KEY_USE_COMPACTION + "=" + mUseCompaction);
            pw.println("  " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome);
@@ -362,8 +362,8 @@ public final class AppCompactor {
    private void updateUseCompaction() {
        mUseCompaction = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
                    KEY_USE_COMPACTION, DEFAULT_USE_COMPACTION);
        if (mUseCompaction && !mCompactionThread.isAlive()) {
            mCompactionThread.start();
        if (mUseCompaction && !mCachedAppOptimizerThread.isAlive()) {
            mCachedAppOptimizerThread.start();
            mCompactionHandler = new MemCompactionHandler();
        }
    }
@@ -521,7 +521,7 @@ public final class AppCompactor {

    private final class MemCompactionHandler extends Handler {
        private MemCompactionHandler() {
            super(mCompactionThread.getLooper());
            super(mCachedAppOptimizerThread.getLooper());
        }

        @Override
+14 −14
Original line number Diff line number Diff line
@@ -122,9 +122,9 @@ public final class OomAdjuster {
    PowerManagerInternal mLocalPowerManager;

    /**
     * Service for compacting background apps.
     * Service for optimizing resource usage from background apps.
     */
    AppCompactor mAppCompact;
    CachedAppOptimizer mCachedAppOptimizer;

    ActivityManagerConstants mConstants;

@@ -197,7 +197,7 @@ public final class OomAdjuster {

        mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class);
        mConstants = mService.mConstants;
        mAppCompact = new AppCompactor(mService);
        mCachedAppOptimizer = new CachedAppOptimizer(mService);

        mProcessGroupHandler = new Handler(adjusterThread.getLooper(), msg -> {
            final int pid = msg.arg1;
@@ -224,7 +224,7 @@ public final class OomAdjuster {
    }

    void initSettings() {
        mAppCompact.init();
        mCachedAppOptimizer.init();
    }

    /**
@@ -1978,7 +1978,7 @@ public final class OomAdjuster {
        int changes = 0;

        // don't compact during bootup
        if (mAppCompact.useCompaction() && mService.mBooted) {
        if (mCachedAppOptimizer.useCompaction() && mService.mBooted) {
            // Cached and prev/home compaction
            if (app.curAdj != app.setAdj) {
                // Perform a minor compaction when a perceptible app becomes the prev/home app
@@ -1987,26 +1987,26 @@ public final class OomAdjuster {
                if (app.setAdj <= ProcessList.PERCEPTIBLE_APP_ADJ &&
                        (app.curAdj == ProcessList.PREVIOUS_APP_ADJ ||
                                app.curAdj == ProcessList.HOME_APP_ADJ)) {
                    mAppCompact.compactAppSome(app);
                    mCachedAppOptimizer.compactAppSome(app);
                } else if ((app.setAdj < ProcessList.CACHED_APP_MIN_ADJ
                                || app.setAdj > ProcessList.CACHED_APP_MAX_ADJ)
                        && app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ
                        && app.curAdj <= ProcessList.CACHED_APP_MAX_ADJ) {
                    mAppCompact.compactAppFull(app);
                    mCachedAppOptimizer.compactAppFull(app);
                }
            } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE
                    && app.setAdj < ProcessList.FOREGROUND_APP_ADJ
                    // Because these can fire independent of oom_adj/procstate changes, we need
                    // to throttle the actual dispatch of these requests in addition to the
                    // processing of the requests. As a result, there is throttling both here
                    // and in AppCompactor.
                    && mAppCompact.shouldCompactPersistent(app, now)) {
                mAppCompact.compactAppPersistent(app);
                    // and in CachedAppOptimizer.
                    && mCachedAppOptimizer.shouldCompactPersistent(app, now)) {
                mCachedAppOptimizer.compactAppPersistent(app);
            } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE
                    && app.getCurProcState()
                        == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
                    && mAppCompact.shouldCompactBFGS(app, now)) {
                mAppCompact.compactAppBfgs(app);
                    && mCachedAppOptimizer.shouldCompactBFGS(app, now)) {
                mCachedAppOptimizer.compactAppBfgs(app);
            }
        }

@@ -2439,7 +2439,7 @@ public final class OomAdjuster {
    }

    @GuardedBy("mService")
    void dumpAppCompactorSettings(PrintWriter pw) {
        mAppCompact.dump(pw);
    void dumpCachedAppOptimizerSettings(PrintWriter pw) {
        mCachedAppOptimizer.dump(pw);
    }
}
Loading