From deea0b5d48e17e5c64284d9400501954545dc609 Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Fri, 17 May 2024 11:27:18 -0700 Subject: Skip background memory trim if the app is in the foreground state Bug: 308927629 Test: Manual Change-Id: I96792546c073176d6ce90769bf52f16790565178 --- core/java/android/app/ActivityThread.java | 6 ++++++ core/java/android/app/activity_manager.aconfig | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index d4812dd612c3..76c1ed619510 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -18,6 +18,7 @@ package android.app; import static android.app.ActivityManager.PROCESS_STATE_UNKNOWN; import static android.app.ConfigurationController.createNewConfigAndUpdateIfNotNull; +import static android.app.Flags.skipBgMemTrimOnFgApp; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.app.servertransaction.ActivityLifecycleItem.ON_CREATE; @@ -7078,6 +7079,11 @@ public final class ActivityThread extends ClientTransactionHandler if (DEBUG_MEMORY_TRIM) Slog.v(TAG, "Trimming memory to level: " + level); try { + if (skipBgMemTrimOnFgApp() + && mLastProcessState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND + && level >= ComponentCallbacks2.TRIM_MEMORY_BACKGROUND) { + return; + } if (level >= ComponentCallbacks2.TRIM_MEMORY_COMPLETE) { PropertyInvalidatedCache.onTrimMemory(); } diff --git a/core/java/android/app/activity_manager.aconfig b/core/java/android/app/activity_manager.aconfig index bb24fd19315e..fa646a76768c 100644 --- a/core/java/android/app/activity_manager.aconfig +++ b/core/java/android/app/activity_manager.aconfig @@ -70,3 +70,14 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + namespace: "backstage_power" + name: "skip_bg_mem_trim_on_fg_app" + description: "Skip background memory trim event on foreground processes." + is_fixed_read_only: true + bug: "308927629" + metadata { + purpose: PURPOSE_BUGFIX + } +} -- cgit v1.2.3-59-g8ed1b