summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Austin Borger <borgera@google.com> 2023-03-30 18:34:22 -0700
committer Austin Borger <borgera@google.com> 2023-03-31 11:24:38 -0700
commiteebca7afc76ed8a0a9ff57c84b4d29587e50daae (patch)
tree372c894348a1663c9c340cac7df3bbbcd958c76d
parent06935f32ef16c7095ff14a1459f75aaaac8d5f37 (diff)
ActivityManager: Use the default UidObserver implementation.
A class which overrides IUidObserver.Stub with empty callback implementations was added in change I2ff1e868586861e4dcd6586ad22139ba84eaf39c to simplify BroadcastQueue interface complexity. Using this default implementation will mean less churn when new callbacks are added to IUidObserver, or existing callback method signatures are changed. Also rename ActivityManager.UidObserver to MyUidObserver to remove any ambiguity. Bug: 274486653 Test: Presubmit, smoke test on cuttlefish. Change-Id: I6e30a4e116a7baaca1e411ca0cc4a4dca37a32bd
-rw-r--r--boot/preloaded-classes2
-rw-r--r--config/preloaded-classes2
-rw-r--r--core/java/android/app/ActivityManager.java24
-rw-r--r--services/core/java/com/android/server/am/AppRestrictionController.java11
-rw-r--r--services/core/java/com/android/server/am/ProcessList.java20
5 files changed, 11 insertions, 48 deletions
diff --git a/boot/preloaded-classes b/boot/preloaded-classes
index d2eb4ce25935..21ae13474d84 100644
--- a/boot/preloaded-classes
+++ b/boot/preloaded-classes
@@ -211,7 +211,7 @@ android.app.ActivityManager$RunningTaskInfo$1
android.app.ActivityManager$RunningTaskInfo
android.app.ActivityManager$TaskDescription$1
android.app.ActivityManager$TaskDescription
-android.app.ActivityManager$UidObserver
+android.app.ActivityManager$MyUidObserver
android.app.ActivityManager
android.app.ActivityManagerInternal
android.app.ActivityOptions$1
diff --git a/config/preloaded-classes b/config/preloaded-classes
index 5e2c02110cba..8e50fe8e4e0f 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -211,7 +211,7 @@ android.app.ActivityManager$RunningTaskInfo$1
android.app.ActivityManager$RunningTaskInfo
android.app.ActivityManager$TaskDescription$1
android.app.ActivityManager$TaskDescription
-android.app.ActivityManager$UidObserver
+android.app.ActivityManager$MyUidObserver
android.app.ActivityManager
android.app.ActivityManagerInternal
android.app.ActivityOptions$1
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 813e32a81983..521bf05d9d4f 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -193,11 +193,11 @@ public class ActivityManager {
*/
public static final int INSTR_FLAG_INSTRUMENT_SDK_SANDBOX = 1 << 5;
- static final class UidObserver extends IUidObserver.Stub {
+ static final class MyUidObserver extends UidObserver {
final OnUidImportanceListener mListener;
final Context mContext;
- UidObserver(OnUidImportanceListener listener, Context clientContext) {
+ MyUidObserver(OnUidImportanceListener listener, Context clientContext) {
mListener = listener;
mContext = clientContext;
}
@@ -212,23 +212,9 @@ public class ActivityManager {
public void onUidGone(int uid, boolean disabled) {
mListener.onUidImportance(uid, RunningAppProcessInfo.IMPORTANCE_GONE);
}
-
- @Override
- public void onUidActive(int uid) {
- }
-
- @Override
- public void onUidIdle(int uid, boolean disabled) {
- }
-
- @Override public void onUidCachedChanged(int uid, boolean cached) {
- }
-
- @Override public void onUidProcAdjChanged(int uid) {
- }
}
- final ArrayMap<OnUidImportanceListener, UidObserver> mImportanceListeners = new ArrayMap<>();
+ final ArrayMap<OnUidImportanceListener, MyUidObserver> mImportanceListeners = new ArrayMap<>();
/**
* Map of callbacks that have registered for {@link UidFrozenStateChanged} events.
@@ -4273,7 +4259,7 @@ public class ActivityManager {
throw new IllegalArgumentException("Listener already registered: " + listener);
}
// TODO: implement the cut point in the system process to avoid IPCs.
- UidObserver observer = new UidObserver(listener, mContext);
+ MyUidObserver observer = new MyUidObserver(listener, mContext);
try {
getService().registerUidObserver(observer,
UID_OBSERVER_PROCSTATE | UID_OBSERVER_GONE,
@@ -4297,7 +4283,7 @@ public class ActivityManager {
@RequiresPermission(Manifest.permission.PACKAGE_USAGE_STATS)
public void removeOnUidImportanceListener(OnUidImportanceListener listener) {
synchronized (this) {
- UidObserver observer = mImportanceListeners.remove(listener);
+ MyUidObserver observer = mImportanceListeners.remove(listener);
if (observer == null) {
throw new IllegalArgumentException("Listener not registered: " + listener);
}
diff --git a/services/core/java/com/android/server/am/AppRestrictionController.java b/services/core/java/com/android/server/am/AppRestrictionController.java
index 6928bd307af0..37b776d60488 100644
--- a/services/core/java/com/android/server/am/AppRestrictionController.java
+++ b/services/core/java/com/android/server/am/AppRestrictionController.java
@@ -101,6 +101,7 @@ import android.app.IUidObserver;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.app.UidObserver;
import android.app.role.OnRoleHoldersChangedListener;
import android.app.role.RoleManager;
import android.app.usage.AppStandbyInfo;
@@ -1439,7 +1440,7 @@ public final class AppRestrictionController {
};
private final IUidObserver mUidObserver =
- new IUidObserver.Stub() {
+ new UidObserver() {
@Override
public void onUidStateChanged(int uid, int procState, long procStateSeq,
int capability) {
@@ -1463,14 +1464,6 @@ public final class AppRestrictionController {
public void onUidActive(int uid) {
mBgHandler.obtainMessage(BgHandler.MSG_UID_ACTIVE, uid, 0).sendToTarget();
}
-
- @Override
- public void onUidCachedChanged(int uid, boolean cached) {
- }
-
- @Override
- public void onUidProcAdjChanged(int uid) {
- }
};
/**
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index b26a1705b309..b1322ef510d5 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -70,7 +70,7 @@ import android.app.ApplicationExitInfo.Reason;
import android.app.ApplicationExitInfo.SubReason;
import android.app.IApplicationThread;
import android.app.IProcessObserver;
-import android.app.IUidObserver;
+import android.app.UidObserver;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledAfter;
import android.content.BroadcastReceiver;
@@ -5281,7 +5281,7 @@ public final class ProcessList {
return new Pair<>(numForegroundServices, procs);
}
- private final class ImperceptibleKillRunner extends IUidObserver.Stub {
+ private final class ImperceptibleKillRunner extends UidObserver {
private static final String EXTRA_PID = "pid";
private static final String EXTRA_UID = "uid";
private static final String EXTRA_TIMESTAMP = "timestamp";
@@ -5537,24 +5537,8 @@ public final class ProcessList {
}
@Override
- public void onUidActive(int uid) {
- }
-
- @Override
- public void onUidIdle(int uid, boolean disabled) {
- }
-
- @Override
public void onUidStateChanged(int uid, int procState, long procStateSeq, int capability) {
mHandler.obtainMessage(H.MSG_UID_STATE_CHANGED, uid, procState).sendToTarget();
}
-
- @Override
- public void onUidCachedChanged(int uid, boolean cached) {
- }
-
- @Override
- public void onUidProcAdjChanged(int uid) {
- }
};
}