Loading services/art-profile +15 −15 Original line number Original line Diff line number Diff line Loading @@ -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 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;->toString()Ljava/lang/String; PLcom/android/server/am/AppBindRecord;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V 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 PLcom/android/server/am/CachedAppOptimizer$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/CachedAppOptimizer$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V HSPLcom/android/server/am/AppCompactor;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/CachedAppOptimizer;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/AppCompactor;->access$1000(Lcom/android/server/am/AppCompactor;)V HSPLcom/android/server/am/CachedAppOptimizer;->access$1000(Lcom/android/server/am/CachedAppOptimizer;)V HSPLcom/android/server/am/AppCompactor;->access$700(Lcom/android/server/am/AppCompactor;)Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/CachedAppOptimizer;->access$700(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/AppCompactor;->access$800(Lcom/android/server/am/AppCompactor;)Ljava/util/ArrayList; HSPLcom/android/server/am/CachedAppOptimizer;->access$800(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/ArrayList; HSPLcom/android/server/am/AppCompactor;->access$900(Lcom/android/server/am/AppCompactor;)Ljava/util/Random; HSPLcom/android/server/am/CachedAppOptimizer;->access$900(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/Random; PLcom/android/server/am/AppCompactor;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/am/CachedAppOptimizer;->dump(Ljava/io/PrintWriter;)V HSPLcom/android/server/am/AppCompactor;->init()V HSPLcom/android/server/am/CachedAppOptimizer;->init()V HSPLcom/android/server/am/AppCompactor;->updateCompactionThrottles()V HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactionThrottles()V HSPLcom/android/server/am/AppCompactor;->updateUseCompaction()V HSPLcom/android/server/am/CachedAppOptimizer;->updateUseCompaction()V HSPLcom/android/server/am/AppCompactor;->useCompaction()Z HSPLcom/android/server/am/CachedAppOptimizer;->useCompaction()Z PLcom/android/server/am/AppErrorDialog$1;->handleMessage(Landroid/os/Message;)V 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;-><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 PLcom/android/server/am/AppErrorDialog;->onClick(Landroid/view/View;)V Loading Loading @@ -18632,9 +18632,9 @@ Lcom/android/server/am/ActivityManagerService$UiHandler; Lcom/android/server/am/ActivityManagerService$UidObserverRegistration; Lcom/android/server/am/ActivityManagerService$UidObserverRegistration; Lcom/android/server/am/ActivityManagerService; Lcom/android/server/am/ActivityManagerService; Lcom/android/server/am/AppBindRecord; Lcom/android/server/am/AppBindRecord; Lcom/android/server/am/AppCompactor$1; Lcom/android/server/am/CachedAppOptimizer$1; Lcom/android/server/am/AppCompactor$MemCompactionHandler; Lcom/android/server/am/CachedAppOptimizer$MemCompactionHandler; Lcom/android/server/am/AppCompactor; Lcom/android/server/am/CachedAppOptimizer; Lcom/android/server/am/AppErrorDialog$Data; Lcom/android/server/am/AppErrorDialog$Data; Lcom/android/server/am/AppErrorResult; Lcom/android/server/am/AppErrorResult; Lcom/android/server/am/AppErrors$BadProcessInfo; Lcom/android/server/am/AppErrors$BadProcessInfo; services/art-profile-boot +1 −1 Original line number Original line Diff line number Diff line Loading @@ -538,7 +538,7 @@ Lcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V Lcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z Lcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z Lcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration; 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/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/ProcessList;->procStatesDifferForMem(II)Z Lcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V Lcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V Lcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z Lcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z Loading services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -2555,7 +2555,7 @@ public class ActivityManagerService extends IActivityManager.Stub Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); Process.setThreadGroupAndCpuset( Process.setThreadGroupAndCpuset( mOomAdjuster.mAppCompact.mCompactionThread.getThreadId(), mOomAdjuster.mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); } catch (Exception e) { } catch (Exception e) { Slog.w(TAG, "Setting background thread cpuset failed"); Slog.w(TAG, "Setting background thread cpuset failed"); Loading Loading @@ -5304,7 +5304,7 @@ public class ActivityManagerService extends IActivityManager.Stub String data, Bundle extras, boolean ordered, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser) { boolean sticky, int sendingUser) { synchronized (ActivityManagerService.this) { synchronized (ActivityManagerService.this) { mOomAdjuster.mAppCompact.compactAllSystem(); mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); } } } } Loading Loading @@ -9000,7 +9000,7 @@ public class ActivityManagerService extends IActivityManager.Stub final long timeSinceLastIdle = now - mLastIdleTime; final long timeSinceLastIdle = now - mLastIdleTime; // Compact all non-zygote processes to freshen up the page cache. // Compact all non-zygote processes to freshen up the page cache. mOomAdjuster.mAppCompact.compactAllSystem(); mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); final long lowRamSinceLastIdle = getLowRamTimeSinceIdle(now); final long lowRamSinceLastIdle = getLowRamTimeSinceIdle(now); mLastIdleTime = now; mLastIdleTime = now; Loading Loading @@ -10021,7 +10021,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized(this) { synchronized(this) { mConstants.dump(pw); mConstants.dump(pw); mOomAdjuster.dumpAppCompactorSettings(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); pw.println(); pw.println(); if (dumpAll) { if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); pw.println("-------------------------------------------------------------------------------"); Loading Loading @@ -10426,7 +10426,7 @@ public class ActivityManagerService extends IActivityManager.Stub } else if ("settings".equals(cmd)) { } else if ("settings".equals(cmd)) { synchronized (this) { synchronized (this) { mConstants.dump(pw); mConstants.dump(pw); mOomAdjuster.dumpAppCompactorSettings(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); } } } else if ("services".equals(cmd) || "s".equals(cmd)) { } else if ("services".equals(cmd) || "s".equals(cmd)) { if (dumpClient) { if (dumpClient) { Loading services/core/java/com/android/server/am/AppCompactor.java→services/core/java/com/android/server/am/CachedAppOptimizer.java +12 −12 Original line number Original line Diff line number Diff line Loading @@ -51,7 +51,7 @@ import java.util.Map; import java.util.Random; import java.util.Random; import java.util.Set; import java.util.Set; public final class AppCompactor { public final class CachedAppOptimizer { // Flags stored in the DeviceConfig API. // Flags stored in the DeviceConfig API. @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction"; @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction"; Loading Loading @@ -122,7 +122,7 @@ public final class AppCompactor { * that will wipe out the cpuset assignment for system_server threads. * that will wipe out the cpuset assignment for system_server threads. * Accordingly, this is in the AMS constructor. * Accordingly, this is in the AMS constructor. */ */ final ServiceThread mCompactionThread; final ServiceThread mCachedAppOptimizerThread; private final ArrayList<ProcessRecord> mPendingCompactionProcesses = private final ArrayList<ProcessRecord> mPendingCompactionProcesses = new ArrayList<ProcessRecord>(); new ArrayList<ProcessRecord>(); Loading Loading @@ -214,15 +214,15 @@ public final class AppCompactor { private int mPersistentCompactionCount; private int mPersistentCompactionCount; private int mBfgsCompactionCount; private int mBfgsCompactionCount; public AppCompactor(ActivityManagerService am) { public CachedAppOptimizer(ActivityManagerService am) { mAm = am; mAm = am; mCompactionThread = new ServiceThread("CompactionThread", mCachedAppOptimizerThread = new ServiceThread("CachedAppOptimizerThread", THREAD_PRIORITY_FOREGROUND, true); THREAD_PRIORITY_FOREGROUND, true); mProcStateThrottle = new HashSet<>(); mProcStateThrottle = new HashSet<>(); } } @VisibleForTesting @VisibleForTesting AppCompactor(ActivityManagerService am, PropertyChangedCallbackForTest callback) { CachedAppOptimizer(ActivityManagerService am, PropertyChangedCallbackForTest callback) { this(am); this(am); mTestCallback = callback; mTestCallback = callback; } } Loading @@ -243,7 +243,7 @@ public final class AppCompactor { updateFullDeltaRssThrottle(); updateFullDeltaRssThrottle(); updateProcStateThrottle(); updateProcStateThrottle(); } } Process.setThreadGroupAndCpuset(mCompactionThread.getThreadId(), Process.setThreadGroupAndCpuset(mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); } } Loading @@ -258,7 +258,7 @@ public final class AppCompactor { @GuardedBy("mAm") @GuardedBy("mAm") void dump(PrintWriter pw) { void dump(PrintWriter pw) { pw.println("AppCompactor settings"); pw.println("CachedAppOptimizer settings"); synchronized (mPhenotypeFlagLock) { synchronized (mPhenotypeFlagLock) { pw.println(" " + KEY_USE_COMPACTION + "=" + mUseCompaction); pw.println(" " + KEY_USE_COMPACTION + "=" + mUseCompaction); pw.println(" " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome); pw.println(" " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome); Loading Loading @@ -362,8 +362,8 @@ public final class AppCompactor { private void updateUseCompaction() { private void updateUseCompaction() { mUseCompaction = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, mUseCompaction = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, KEY_USE_COMPACTION, DEFAULT_USE_COMPACTION); KEY_USE_COMPACTION, DEFAULT_USE_COMPACTION); if (mUseCompaction && !mCompactionThread.isAlive()) { if (mUseCompaction && !mCachedAppOptimizerThread.isAlive()) { mCompactionThread.start(); mCachedAppOptimizerThread.start(); mCompactionHandler = new MemCompactionHandler(); mCompactionHandler = new MemCompactionHandler(); } } } } Loading Loading @@ -521,7 +521,7 @@ public final class AppCompactor { private final class MemCompactionHandler extends Handler { private final class MemCompactionHandler extends Handler { private MemCompactionHandler() { private MemCompactionHandler() { super(mCompactionThread.getLooper()); super(mCachedAppOptimizerThread.getLooper()); } } @Override @Override Loading services/core/java/com/android/server/am/OomAdjuster.java +14 −14 Original line number Original line Diff line number Diff line Loading @@ -122,9 +122,9 @@ public final class OomAdjuster { PowerManagerInternal mLocalPowerManager; PowerManagerInternal mLocalPowerManager; /** /** * Service for compacting background apps. * Service for optimizing resource usage from background apps. */ */ AppCompactor mAppCompact; CachedAppOptimizer mCachedAppOptimizer; ActivityManagerConstants mConstants; ActivityManagerConstants mConstants; Loading Loading @@ -197,7 +197,7 @@ public final class OomAdjuster { mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class); mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class); mConstants = mService.mConstants; mConstants = mService.mConstants; mAppCompact = new AppCompactor(mService); mCachedAppOptimizer = new CachedAppOptimizer(mService); mProcessGroupHandler = new Handler(adjusterThread.getLooper(), msg -> { mProcessGroupHandler = new Handler(adjusterThread.getLooper(), msg -> { final int pid = msg.arg1; final int pid = msg.arg1; Loading @@ -224,7 +224,7 @@ public final class OomAdjuster { } } void initSettings() { void initSettings() { mAppCompact.init(); mCachedAppOptimizer.init(); } } /** /** Loading Loading @@ -1978,7 +1978,7 @@ public final class OomAdjuster { int changes = 0; int changes = 0; // don't compact during bootup // don't compact during bootup if (mAppCompact.useCompaction() && mService.mBooted) { if (mCachedAppOptimizer.useCompaction() && mService.mBooted) { // Cached and prev/home compaction // Cached and prev/home compaction if (app.curAdj != app.setAdj) { if (app.curAdj != app.setAdj) { // Perform a minor compaction when a perceptible app becomes the prev/home app // Perform a minor compaction when a perceptible app becomes the prev/home app Loading @@ -1987,26 +1987,26 @@ public final class OomAdjuster { if (app.setAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && if (app.setAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && (app.curAdj == ProcessList.PREVIOUS_APP_ADJ || (app.curAdj == ProcessList.PREVIOUS_APP_ADJ || app.curAdj == ProcessList.HOME_APP_ADJ)) { app.curAdj == ProcessList.HOME_APP_ADJ)) { mAppCompact.compactAppSome(app); mCachedAppOptimizer.compactAppSome(app); } else if ((app.setAdj < ProcessList.CACHED_APP_MIN_ADJ } else if ((app.setAdj < ProcessList.CACHED_APP_MIN_ADJ || app.setAdj > ProcessList.CACHED_APP_MAX_ADJ) || app.setAdj > ProcessList.CACHED_APP_MAX_ADJ) && app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ && app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ && app.curAdj <= ProcessList.CACHED_APP_MAX_ADJ) { && app.curAdj <= ProcessList.CACHED_APP_MAX_ADJ) { mAppCompact.compactAppFull(app); mCachedAppOptimizer.compactAppFull(app); } } } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE && app.setAdj < ProcessList.FOREGROUND_APP_ADJ && app.setAdj < ProcessList.FOREGROUND_APP_ADJ // Because these can fire independent of oom_adj/procstate changes, we need // Because these can fire independent of oom_adj/procstate changes, we need // to throttle the actual dispatch of these requests in addition to the // to throttle the actual dispatch of these requests in addition to the // processing of the requests. As a result, there is throttling both here // processing of the requests. As a result, there is throttling both here // and in AppCompactor. // and in CachedAppOptimizer. && mAppCompact.shouldCompactPersistent(app, now)) { && mCachedAppOptimizer.shouldCompactPersistent(app, now)) { mAppCompact.compactAppPersistent(app); mCachedAppOptimizer.compactAppPersistent(app); } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE && app.getCurProcState() && app.getCurProcState() == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE && mAppCompact.shouldCompactBFGS(app, now)) { && mCachedAppOptimizer.shouldCompactBFGS(app, now)) { mAppCompact.compactAppBfgs(app); mCachedAppOptimizer.compactAppBfgs(app); } } } } Loading Loading @@ -2439,7 +2439,7 @@ public final class OomAdjuster { } } @GuardedBy("mService") @GuardedBy("mService") void dumpAppCompactorSettings(PrintWriter pw) { void dumpCachedAppOptimizerSettings(PrintWriter pw) { mAppCompact.dump(pw); mCachedAppOptimizer.dump(pw); } } } } Loading
services/art-profile +15 −15 Original line number Original line Diff line number Diff line Loading @@ -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 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;->toString()Ljava/lang/String; PLcom/android/server/am/AppBindRecord;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V 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 PLcom/android/server/am/CachedAppOptimizer$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/CachedAppOptimizer$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V HSPLcom/android/server/am/AppCompactor;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/CachedAppOptimizer;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/AppCompactor;->access$1000(Lcom/android/server/am/AppCompactor;)V HSPLcom/android/server/am/CachedAppOptimizer;->access$1000(Lcom/android/server/am/CachedAppOptimizer;)V HSPLcom/android/server/am/AppCompactor;->access$700(Lcom/android/server/am/AppCompactor;)Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/CachedAppOptimizer;->access$700(Lcom/android/server/am/CachedAppOptimizer;)Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/AppCompactor;->access$800(Lcom/android/server/am/AppCompactor;)Ljava/util/ArrayList; HSPLcom/android/server/am/CachedAppOptimizer;->access$800(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/ArrayList; HSPLcom/android/server/am/AppCompactor;->access$900(Lcom/android/server/am/AppCompactor;)Ljava/util/Random; HSPLcom/android/server/am/CachedAppOptimizer;->access$900(Lcom/android/server/am/CachedAppOptimizer;)Ljava/util/Random; PLcom/android/server/am/AppCompactor;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/am/CachedAppOptimizer;->dump(Ljava/io/PrintWriter;)V HSPLcom/android/server/am/AppCompactor;->init()V HSPLcom/android/server/am/CachedAppOptimizer;->init()V HSPLcom/android/server/am/AppCompactor;->updateCompactionThrottles()V HSPLcom/android/server/am/CachedAppOptimizer;->updateCompactionThrottles()V HSPLcom/android/server/am/AppCompactor;->updateUseCompaction()V HSPLcom/android/server/am/CachedAppOptimizer;->updateUseCompaction()V HSPLcom/android/server/am/AppCompactor;->useCompaction()Z HSPLcom/android/server/am/CachedAppOptimizer;->useCompaction()Z PLcom/android/server/am/AppErrorDialog$1;->handleMessage(Landroid/os/Message;)V 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;-><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 PLcom/android/server/am/AppErrorDialog;->onClick(Landroid/view/View;)V Loading Loading @@ -18632,9 +18632,9 @@ Lcom/android/server/am/ActivityManagerService$UiHandler; Lcom/android/server/am/ActivityManagerService$UidObserverRegistration; Lcom/android/server/am/ActivityManagerService$UidObserverRegistration; Lcom/android/server/am/ActivityManagerService; Lcom/android/server/am/ActivityManagerService; Lcom/android/server/am/AppBindRecord; Lcom/android/server/am/AppBindRecord; Lcom/android/server/am/AppCompactor$1; Lcom/android/server/am/CachedAppOptimizer$1; Lcom/android/server/am/AppCompactor$MemCompactionHandler; Lcom/android/server/am/CachedAppOptimizer$MemCompactionHandler; Lcom/android/server/am/AppCompactor; Lcom/android/server/am/CachedAppOptimizer; Lcom/android/server/am/AppErrorDialog$Data; Lcom/android/server/am/AppErrorDialog$Data; Lcom/android/server/am/AppErrorResult; Lcom/android/server/am/AppErrorResult; Lcom/android/server/am/AppErrors$BadProcessInfo; Lcom/android/server/am/AppErrors$BadProcessInfo;
services/art-profile-boot +1 −1 Original line number Original line Diff line number Diff line Loading @@ -538,7 +538,7 @@ Lcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V Lcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z Lcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z Lcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration; 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/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/ProcessList;->procStatesDifferForMem(II)Z Lcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V Lcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V Lcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z Lcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z Loading
services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -2555,7 +2555,7 @@ public class ActivityManagerService extends IActivityManager.Stub Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); Process.setThreadGroupAndCpuset( Process.setThreadGroupAndCpuset( mOomAdjuster.mAppCompact.mCompactionThread.getThreadId(), mOomAdjuster.mCachedAppOptimizer.mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); } catch (Exception e) { } catch (Exception e) { Slog.w(TAG, "Setting background thread cpuset failed"); Slog.w(TAG, "Setting background thread cpuset failed"); Loading Loading @@ -5304,7 +5304,7 @@ public class ActivityManagerService extends IActivityManager.Stub String data, Bundle extras, boolean ordered, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser) { boolean sticky, int sendingUser) { synchronized (ActivityManagerService.this) { synchronized (ActivityManagerService.this) { mOomAdjuster.mAppCompact.compactAllSystem(); mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); } } } } Loading Loading @@ -9000,7 +9000,7 @@ public class ActivityManagerService extends IActivityManager.Stub final long timeSinceLastIdle = now - mLastIdleTime; final long timeSinceLastIdle = now - mLastIdleTime; // Compact all non-zygote processes to freshen up the page cache. // Compact all non-zygote processes to freshen up the page cache. mOomAdjuster.mAppCompact.compactAllSystem(); mOomAdjuster.mCachedAppOptimizer.compactAllSystem(); final long lowRamSinceLastIdle = getLowRamTimeSinceIdle(now); final long lowRamSinceLastIdle = getLowRamTimeSinceIdle(now); mLastIdleTime = now; mLastIdleTime = now; Loading Loading @@ -10021,7 +10021,7 @@ public class ActivityManagerService extends IActivityManager.Stub synchronized(this) { synchronized(this) { mConstants.dump(pw); mConstants.dump(pw); mOomAdjuster.dumpAppCompactorSettings(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); pw.println(); pw.println(); if (dumpAll) { if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); pw.println("-------------------------------------------------------------------------------"); Loading Loading @@ -10426,7 +10426,7 @@ public class ActivityManagerService extends IActivityManager.Stub } else if ("settings".equals(cmd)) { } else if ("settings".equals(cmd)) { synchronized (this) { synchronized (this) { mConstants.dump(pw); mConstants.dump(pw); mOomAdjuster.dumpAppCompactorSettings(pw); mOomAdjuster.dumpCachedAppOptimizerSettings(pw); } } } else if ("services".equals(cmd) || "s".equals(cmd)) { } else if ("services".equals(cmd) || "s".equals(cmd)) { if (dumpClient) { if (dumpClient) { Loading
services/core/java/com/android/server/am/AppCompactor.java→services/core/java/com/android/server/am/CachedAppOptimizer.java +12 −12 Original line number Original line Diff line number Diff line Loading @@ -51,7 +51,7 @@ import java.util.Map; import java.util.Random; import java.util.Random; import java.util.Set; import java.util.Set; public final class AppCompactor { public final class CachedAppOptimizer { // Flags stored in the DeviceConfig API. // Flags stored in the DeviceConfig API. @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction"; @VisibleForTesting static final String KEY_USE_COMPACTION = "use_compaction"; Loading Loading @@ -122,7 +122,7 @@ public final class AppCompactor { * that will wipe out the cpuset assignment for system_server threads. * that will wipe out the cpuset assignment for system_server threads. * Accordingly, this is in the AMS constructor. * Accordingly, this is in the AMS constructor. */ */ final ServiceThread mCompactionThread; final ServiceThread mCachedAppOptimizerThread; private final ArrayList<ProcessRecord> mPendingCompactionProcesses = private final ArrayList<ProcessRecord> mPendingCompactionProcesses = new ArrayList<ProcessRecord>(); new ArrayList<ProcessRecord>(); Loading Loading @@ -214,15 +214,15 @@ public final class AppCompactor { private int mPersistentCompactionCount; private int mPersistentCompactionCount; private int mBfgsCompactionCount; private int mBfgsCompactionCount; public AppCompactor(ActivityManagerService am) { public CachedAppOptimizer(ActivityManagerService am) { mAm = am; mAm = am; mCompactionThread = new ServiceThread("CompactionThread", mCachedAppOptimizerThread = new ServiceThread("CachedAppOptimizerThread", THREAD_PRIORITY_FOREGROUND, true); THREAD_PRIORITY_FOREGROUND, true); mProcStateThrottle = new HashSet<>(); mProcStateThrottle = new HashSet<>(); } } @VisibleForTesting @VisibleForTesting AppCompactor(ActivityManagerService am, PropertyChangedCallbackForTest callback) { CachedAppOptimizer(ActivityManagerService am, PropertyChangedCallbackForTest callback) { this(am); this(am); mTestCallback = callback; mTestCallback = callback; } } Loading @@ -243,7 +243,7 @@ public final class AppCompactor { updateFullDeltaRssThrottle(); updateFullDeltaRssThrottle(); updateProcStateThrottle(); updateProcStateThrottle(); } } Process.setThreadGroupAndCpuset(mCompactionThread.getThreadId(), Process.setThreadGroupAndCpuset(mCachedAppOptimizerThread.getThreadId(), Process.THREAD_GROUP_SYSTEM); Process.THREAD_GROUP_SYSTEM); } } Loading @@ -258,7 +258,7 @@ public final class AppCompactor { @GuardedBy("mAm") @GuardedBy("mAm") void dump(PrintWriter pw) { void dump(PrintWriter pw) { pw.println("AppCompactor settings"); pw.println("CachedAppOptimizer settings"); synchronized (mPhenotypeFlagLock) { synchronized (mPhenotypeFlagLock) { pw.println(" " + KEY_USE_COMPACTION + "=" + mUseCompaction); pw.println(" " + KEY_USE_COMPACTION + "=" + mUseCompaction); pw.println(" " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome); pw.println(" " + KEY_COMPACT_ACTION_1 + "=" + mCompactActionSome); Loading Loading @@ -362,8 +362,8 @@ public final class AppCompactor { private void updateUseCompaction() { private void updateUseCompaction() { mUseCompaction = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, mUseCompaction = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, KEY_USE_COMPACTION, DEFAULT_USE_COMPACTION); KEY_USE_COMPACTION, DEFAULT_USE_COMPACTION); if (mUseCompaction && !mCompactionThread.isAlive()) { if (mUseCompaction && !mCachedAppOptimizerThread.isAlive()) { mCompactionThread.start(); mCachedAppOptimizerThread.start(); mCompactionHandler = new MemCompactionHandler(); mCompactionHandler = new MemCompactionHandler(); } } } } Loading Loading @@ -521,7 +521,7 @@ public final class AppCompactor { private final class MemCompactionHandler extends Handler { private final class MemCompactionHandler extends Handler { private MemCompactionHandler() { private MemCompactionHandler() { super(mCompactionThread.getLooper()); super(mCachedAppOptimizerThread.getLooper()); } } @Override @Override Loading
services/core/java/com/android/server/am/OomAdjuster.java +14 −14 Original line number Original line Diff line number Diff line Loading @@ -122,9 +122,9 @@ public final class OomAdjuster { PowerManagerInternal mLocalPowerManager; PowerManagerInternal mLocalPowerManager; /** /** * Service for compacting background apps. * Service for optimizing resource usage from background apps. */ */ AppCompactor mAppCompact; CachedAppOptimizer mCachedAppOptimizer; ActivityManagerConstants mConstants; ActivityManagerConstants mConstants; Loading Loading @@ -197,7 +197,7 @@ public final class OomAdjuster { mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class); mLocalPowerManager = LocalServices.getService(PowerManagerInternal.class); mConstants = mService.mConstants; mConstants = mService.mConstants; mAppCompact = new AppCompactor(mService); mCachedAppOptimizer = new CachedAppOptimizer(mService); mProcessGroupHandler = new Handler(adjusterThread.getLooper(), msg -> { mProcessGroupHandler = new Handler(adjusterThread.getLooper(), msg -> { final int pid = msg.arg1; final int pid = msg.arg1; Loading @@ -224,7 +224,7 @@ public final class OomAdjuster { } } void initSettings() { void initSettings() { mAppCompact.init(); mCachedAppOptimizer.init(); } } /** /** Loading Loading @@ -1978,7 +1978,7 @@ public final class OomAdjuster { int changes = 0; int changes = 0; // don't compact during bootup // don't compact during bootup if (mAppCompact.useCompaction() && mService.mBooted) { if (mCachedAppOptimizer.useCompaction() && mService.mBooted) { // Cached and prev/home compaction // Cached and prev/home compaction if (app.curAdj != app.setAdj) { if (app.curAdj != app.setAdj) { // Perform a minor compaction when a perceptible app becomes the prev/home app // Perform a minor compaction when a perceptible app becomes the prev/home app Loading @@ -1987,26 +1987,26 @@ public final class OomAdjuster { if (app.setAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && if (app.setAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && (app.curAdj == ProcessList.PREVIOUS_APP_ADJ || (app.curAdj == ProcessList.PREVIOUS_APP_ADJ || app.curAdj == ProcessList.HOME_APP_ADJ)) { app.curAdj == ProcessList.HOME_APP_ADJ)) { mAppCompact.compactAppSome(app); mCachedAppOptimizer.compactAppSome(app); } else if ((app.setAdj < ProcessList.CACHED_APP_MIN_ADJ } else if ((app.setAdj < ProcessList.CACHED_APP_MIN_ADJ || app.setAdj > ProcessList.CACHED_APP_MAX_ADJ) || app.setAdj > ProcessList.CACHED_APP_MAX_ADJ) && app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ && app.curAdj >= ProcessList.CACHED_APP_MIN_ADJ && app.curAdj <= ProcessList.CACHED_APP_MAX_ADJ) { && app.curAdj <= ProcessList.CACHED_APP_MAX_ADJ) { mAppCompact.compactAppFull(app); mCachedAppOptimizer.compactAppFull(app); } } } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE && app.setAdj < ProcessList.FOREGROUND_APP_ADJ && app.setAdj < ProcessList.FOREGROUND_APP_ADJ // Because these can fire independent of oom_adj/procstate changes, we need // Because these can fire independent of oom_adj/procstate changes, we need // to throttle the actual dispatch of these requests in addition to the // to throttle the actual dispatch of these requests in addition to the // processing of the requests. As a result, there is throttling both here // processing of the requests. As a result, there is throttling both here // and in AppCompactor. // and in CachedAppOptimizer. && mAppCompact.shouldCompactPersistent(app, now)) { && mCachedAppOptimizer.shouldCompactPersistent(app, now)) { mAppCompact.compactAppPersistent(app); mCachedAppOptimizer.compactAppPersistent(app); } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE } else if (mService.mWakefulness != PowerManagerInternal.WAKEFULNESS_AWAKE && app.getCurProcState() && app.getCurProcState() == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE && mAppCompact.shouldCompactBFGS(app, now)) { && mCachedAppOptimizer.shouldCompactBFGS(app, now)) { mAppCompact.compactAppBfgs(app); mCachedAppOptimizer.compactAppBfgs(app); } } } } Loading Loading @@ -2439,7 +2439,7 @@ public final class OomAdjuster { } } @GuardedBy("mService") @GuardedBy("mService") void dumpAppCompactorSettings(PrintWriter pw) { void dumpCachedAppOptimizerSettings(PrintWriter pw) { mAppCompact.dump(pw); mCachedAppOptimizer.dump(pw); } } } }