From 5e1fc99040055f181a930d96df9b848a8d4325a4 Mon Sep 17 00:00:00 2001 From: Kevin Han Date: Thu, 3 Feb 2022 17:25:05 -0800 Subject: [PATCH] Don't log on each call when hibernation not enabled Don't spam log when hibernation is not enabled. Instead, we log once when we determine the hibernation enable state has changed. Also add enablement check on new hibernation stats API. Bug: 216621450 Test: manual Change-Id: Id023f8ec97f243ad016ca7f8ad5515b05c0f8000 --- .../apphibernation/AppHibernationService.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/apphibernation/AppHibernationService.java b/services/core/java/com/android/server/apphibernation/AppHibernationService.java index 366718c65d84b..eee902a598fe7 100644 --- a/services/core/java/com/android/server/apphibernation/AppHibernationService.java +++ b/services/core/java/com/android/server/apphibernation/AppHibernationService.java @@ -217,7 +217,7 @@ public final class AppHibernationService extends SystemService { */ boolean isHibernatingForUser(String packageName, int userId) { String methodName = "isHibernatingForUser"; - if (!checkHibernationEnabled(methodName)) { + if (!sIsServiceEnabled) { return false; } getContext().enforceCallingOrSelfPermission( @@ -246,7 +246,7 @@ public final class AppHibernationService extends SystemService { * @param packageName package to check */ boolean isHibernatingGlobally(String packageName) { - if (!checkHibernationEnabled("isHibernatingGlobally")) { + if (!sIsServiceEnabled) { return false; } getContext().enforceCallingOrSelfPermission( @@ -272,7 +272,7 @@ public final class AppHibernationService extends SystemService { */ void setHibernatingForUser(String packageName, int userId, boolean isHibernating) { String methodName = "setHibernatingForUser"; - if (!checkHibernationEnabled(methodName)) { + if (!sIsServiceEnabled) { return; } getContext().enforceCallingOrSelfPermission( @@ -326,7 +326,7 @@ public final class AppHibernationService extends SystemService { * @param isHibernating new hibernation state */ void setHibernatingGlobally(String packageName, boolean isHibernating) { - if (!checkHibernationEnabled("setHibernatingGlobally")) { + if (!sIsServiceEnabled) { return; } getContext().enforceCallingOrSelfPermission( @@ -359,7 +359,7 @@ public final class AppHibernationService extends SystemService { @NonNull List getHibernatingPackagesForUser(int userId) { ArrayList hibernatingPackages = new ArrayList<>(); String methodName = "getHibernatingPackagesForUser"; - if (!checkHibernationEnabled(methodName)) { + if (!sIsServiceEnabled) { return hibernatingPackages; } getContext().enforceCallingOrSelfPermission( @@ -390,6 +390,9 @@ public final class AppHibernationService extends SystemService { @Nullable Set packageNames, int userId) { Map statsMap = new ArrayMap<>(); String methodName = "getHibernationStatsForUser"; + if (!sIsServiceEnabled) { + return statsMap; + } getContext().enforceCallingOrSelfPermission( android.Manifest.permission.MANAGE_APP_HIBERNATION, "Caller does not have MANAGE_APP_HIBERNATION permission."); @@ -677,6 +680,7 @@ public final class AppHibernationService extends SystemService { for (String key : properties.getKeyset()) { if (TextUtils.equals(KEY_APP_HIBERNATION_ENABLED, key)) { sIsServiceEnabled = isDeviceConfigAppHibernationEnabled(); + Slog.d(TAG, "App hibernation changed to enabled=" + sIsServiceEnabled); break; } } @@ -721,13 +725,6 @@ public final class AppHibernationService extends SystemService { return true; } - private boolean checkHibernationEnabled(String methodName) { - if (!sIsServiceEnabled) { - Slog.w(TAG, String.format("Attempted to call %s on unsupported device.", methodName)); - } - return sIsServiceEnabled; - } - private void dump(PrintWriter pw) { // Check usage stats permission since hibernation indirectly informs usage. if (!DumpUtils.checkDumpAndUsageStatsPermission(getContext(), TAG, pw)) return;