diff options
3 files changed, 14 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 3e3a4a51f372..dbdb2ab54e89 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -6447,6 +6447,7 @@ public class ActivityManagerService extends IActivityManager.Stub reportCurWakefulnessUsageEvent(); mActivityTaskManager.onScreenAwakeChanged(isAwake); mOomAdjProfiler.onWakefulnessChanged(wakefulness); + mOomAdjuster.onWakefulnessChanged(wakefulness); } updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY); } diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java index 2aba375fc40b..30b63940de7f 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -1128,6 +1128,15 @@ public final class CachedAppOptimizer { } } + void onWakefulnessChanged(int wakefulness) { + if(wakefulness == PowerManagerInternal.WAKEFULNESS_AWAKE) { + // Remove any pending compaction we may have scheduled to happen while screen was off + Slog.e(TAG_AM, "Cancel pending or running compactions as system is awake"); + mPendingCompactionProcesses.clear(); + cancelCompaction(); + } + } + @GuardedBy({"mService", "mProcLock"}) void onOomAdjustChanged(int oldAdj, int newAdj, ProcessRecord app) { // Cancel any currently executing compactions diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java index e94c2fa60fc1..2ed6fc483e31 100644 --- a/services/core/java/com/android/server/am/OomAdjuster.java +++ b/services/core/java/com/android/server/am/OomAdjuster.java @@ -2687,6 +2687,10 @@ public class OomAdjuster { } } + void onWakefulnessChanged(int wakefulness) { + mCachedAppOptimizer.onWakefulnessChanged(wakefulness); + } + /** Applies the computed oomadj, procstate and sched group values and freezes them in set* */ @GuardedBy({"mService", "mProcLock"}) private boolean applyOomAdjLSP(ProcessRecord app, boolean doingAll, long now, |