diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index 833bfed573b2d..496ad0c99dfe6 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -673,4 +673,9 @@ interface IActivityManager { * @param state The customized state data */ void setProcessStateSummary(in byte[] state); + + /** + * Return whether the app freezer is supported (true) or not (false) by this system. + */ + boolean isAppFreezerSupported(); } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 0bd134c8dfaca..edf986a763ec6 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -20171,4 +20171,15 @@ public class ActivityManagerService extends IActivityManager.Stub mUsageStatsService.reportLocusUpdate(activity, userId, locusId, appToken); } } + + @Override + public boolean isAppFreezerSupported() { + final long token = Binder.clearCallingIdentity(); + + try { + return mOomAdjuster.mCachedAppOptimizer.isFreezerSupported(); + } finally { + Binder.restoreCallingIdentity(token); + } + } } diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java index 86d9028f53dca..35d2653483b95 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -407,7 +407,7 @@ public final class CachedAppOptimizer { /** * Determines whether the freezer is correctly supported by this system */ - public boolean isFreezerSupported() { + public static boolean isFreezerSupported() { boolean supported = false; FileReader fr = null;