Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -2744,6 +2744,7 @@ package android.apphibernation { method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public java.util.Map<java.lang.String,android.apphibernation.HibernationStats> getHibernationStatsForUser(); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingForUser(@NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingGlobally(@NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isOatArtifactDeletionEnabled(); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingForUser(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingGlobally(@NonNull String, boolean); } core/java/android/apphibernation/AppHibernationManager.java +16 −1 Original line number Diff line number Diff line Loading @@ -166,4 +166,19 @@ public class AppHibernationManager { throw e.rethrowFromSystemServer(); } } /** * Whether global hibernation should delete ART ahead-of-time compilation artifacts * and prevent package manager from re-optimizing the APK. * @hide */ @SystemApi @RequiresPermission(value = android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isOatArtifactDeletionEnabled() { try { return mIAppHibernationService.isOatArtifactDeletionEnabled(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } } core/java/android/apphibernation/IAppHibernationService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,6 @@ interface IAppHibernationService { List<String> getHibernatingPackagesForUser(int userId); Map<String, HibernationStats> getHibernationStatsForUser(in List<String> packageNames, int userId); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION)") boolean isOatArtifactDeletionEnabled(); } No newline at end of file services/core/java/com/android/server/apphibernation/AppHibernationService.java +8 −0 Original line number Diff line number Diff line Loading @@ -210,6 +210,9 @@ public final class AppHibernationService extends SystemService { * package manager from re-optimizing the APK. */ private boolean isOatArtifactDeletionEnabled() { getContext().enforceCallingOrSelfPermission( android.Manifest.permission.MANAGE_APP_HIBERNATION, "Caller does not have MANAGE_APP_HIBERNATION permission."); return mOatArtifactDeletionEnabled; } Loading Loading @@ -874,6 +877,11 @@ public final class AppHibernationService extends SystemService { return mService.getHibernationStatsForUser(pkgsSet, userId); } @Override public boolean isOatArtifactDeletionEnabled() { return mService.isOatArtifactDeletionEnabled(); } @Override public void onShellCommand(@Nullable FileDescriptor in, @Nullable FileDescriptor out, @Nullable FileDescriptor err, @NonNull String[] args, Loading Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -2744,6 +2744,7 @@ package android.apphibernation { method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public java.util.Map<java.lang.String,android.apphibernation.HibernationStats> getHibernationStatsForUser(); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingForUser(@NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isHibernatingGlobally(@NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isOatArtifactDeletionEnabled(); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingForUser(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION) public void setHibernatingGlobally(@NonNull String, boolean); }
core/java/android/apphibernation/AppHibernationManager.java +16 −1 Original line number Diff line number Diff line Loading @@ -166,4 +166,19 @@ public class AppHibernationManager { throw e.rethrowFromSystemServer(); } } /** * Whether global hibernation should delete ART ahead-of-time compilation artifacts * and prevent package manager from re-optimizing the APK. * @hide */ @SystemApi @RequiresPermission(value = android.Manifest.permission.MANAGE_APP_HIBERNATION) public boolean isOatArtifactDeletionEnabled() { try { return mIAppHibernationService.isOatArtifactDeletionEnabled(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } }
core/java/android/apphibernation/IAppHibernationService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,6 @@ interface IAppHibernationService { List<String> getHibernatingPackagesForUser(int userId); Map<String, HibernationStats> getHibernationStatsForUser(in List<String> packageNames, int userId); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MANAGE_APP_HIBERNATION)") boolean isOatArtifactDeletionEnabled(); } No newline at end of file
services/core/java/com/android/server/apphibernation/AppHibernationService.java +8 −0 Original line number Diff line number Diff line Loading @@ -210,6 +210,9 @@ public final class AppHibernationService extends SystemService { * package manager from re-optimizing the APK. */ private boolean isOatArtifactDeletionEnabled() { getContext().enforceCallingOrSelfPermission( android.Manifest.permission.MANAGE_APP_HIBERNATION, "Caller does not have MANAGE_APP_HIBERNATION permission."); return mOatArtifactDeletionEnabled; } Loading Loading @@ -874,6 +877,11 @@ public final class AppHibernationService extends SystemService { return mService.getHibernationStatsForUser(pkgsSet, userId); } @Override public boolean isOatArtifactDeletionEnabled() { return mService.isOatArtifactDeletionEnabled(); } @Override public void onShellCommand(@Nullable FileDescriptor in, @Nullable FileDescriptor out, @Nullable FileDescriptor err, @NonNull String[] args, Loading