Loading services/core/java/com/android/server/am/ActiveServices.java +7 −2 Original line number Diff line number Diff line Loading @@ -4914,8 +4914,13 @@ public final class ActiveServices { // TODO: remove this toast after feature development is done void showWhileInUseDebugToastLocked(int uid, int op, int mode) { for (int i = mAm.mProcessList.mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord pr = mAm.mProcessList.mLruProcesses.get(i); final UidRecord uidRec = mAm.mProcessList.getUidRecordLocked(uid); if (uidRec == null) { return; } for (int i = uidRec.procRecords.size() - 1; i >= 0; i--) { ProcessRecord pr = uidRec.procRecords.valueAt(i); if (pr.uid != uid) { continue; } Loading services/core/java/com/android/server/am/OomAdjuster.java +15 −2 Original line number Diff line number Diff line Loading @@ -324,8 +324,21 @@ public final class OomAdjuster { boolean success = applyOomAdjLocked(app, doingAll, now, SystemClock.elapsedRealtime()); if (uidRec != null) { updateAppUidRecLocked(app); // If this proc state is changed, need to update its uid record here // After uidRec.reset() above, for UidRecord that has multiple processes (ProcessRecord) // , We need to apply all ProcessRecord into UidRecord. final ArraySet<ProcessRecord> procRecords = app.uidRecord.procRecords; for (int i = procRecords.size() - 1; i >= 0; i--) { final ProcessRecord pr = procRecords.valueAt(i); if (!pr.killedByAm && pr.thread != null) { if (pr.isolated && pr.numberOfRunningServices() <= 0 && pr.isolatedEntryPoint == null) { // No op. } else { // Keeping this process, update its uid. updateAppUidRecLocked(pr); } } } if (uidRec.getCurProcState() != PROCESS_STATE_NONEXISTENT && (uidRec.setProcState != uidRec.getCurProcState() || uidRec.setCapability != uidRec.curCapability Loading services/core/java/com/android/server/am/ProcessList.java +2 −0 Original line number Diff line number Diff line Loading @@ -2808,6 +2808,7 @@ public final class ProcessList { uidRec.curCapability); } proc.uidRecord = uidRec; uidRec.procRecords.add(proc); // Reset render thread tid if it was already set, so new process can set it again. proc.renderThreadTid = 0; Loading Loading @@ -2901,6 +2902,7 @@ public final class ProcessList { } if (old != null && old.uidRecord != null) { old.uidRecord.numProcs--; old.uidRecord.procRecords.remove(old); if (old.uidRecord.numProcs == 0) { // No more processes using this uid, tell clients it is gone. if (DEBUG_UID_OBSERVERS) Slog.i(TAG_UID_OBSERVERS, Loading services/core/java/com/android/server/am/UidRecord.java +2 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.ActivityManager; import android.content.pm.PackageManager; import android.os.SystemClock; import android.os.UserHandle; import android.util.ArraySet; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import android.util.proto.ProtoUtils; Loading @@ -44,6 +45,7 @@ public final class UidRecord { boolean idle; boolean setIdle; int numProcs; ArraySet<ProcessRecord> procRecords = new ArraySet<>(); /** * Sequence number associated with the {@link #mCurProcState}. This is incremented using Loading Loading
services/core/java/com/android/server/am/ActiveServices.java +7 −2 Original line number Diff line number Diff line Loading @@ -4914,8 +4914,13 @@ public final class ActiveServices { // TODO: remove this toast after feature development is done void showWhileInUseDebugToastLocked(int uid, int op, int mode) { for (int i = mAm.mProcessList.mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord pr = mAm.mProcessList.mLruProcesses.get(i); final UidRecord uidRec = mAm.mProcessList.getUidRecordLocked(uid); if (uidRec == null) { return; } for (int i = uidRec.procRecords.size() - 1; i >= 0; i--) { ProcessRecord pr = uidRec.procRecords.valueAt(i); if (pr.uid != uid) { continue; } Loading
services/core/java/com/android/server/am/OomAdjuster.java +15 −2 Original line number Diff line number Diff line Loading @@ -324,8 +324,21 @@ public final class OomAdjuster { boolean success = applyOomAdjLocked(app, doingAll, now, SystemClock.elapsedRealtime()); if (uidRec != null) { updateAppUidRecLocked(app); // If this proc state is changed, need to update its uid record here // After uidRec.reset() above, for UidRecord that has multiple processes (ProcessRecord) // , We need to apply all ProcessRecord into UidRecord. final ArraySet<ProcessRecord> procRecords = app.uidRecord.procRecords; for (int i = procRecords.size() - 1; i >= 0; i--) { final ProcessRecord pr = procRecords.valueAt(i); if (!pr.killedByAm && pr.thread != null) { if (pr.isolated && pr.numberOfRunningServices() <= 0 && pr.isolatedEntryPoint == null) { // No op. } else { // Keeping this process, update its uid. updateAppUidRecLocked(pr); } } } if (uidRec.getCurProcState() != PROCESS_STATE_NONEXISTENT && (uidRec.setProcState != uidRec.getCurProcState() || uidRec.setCapability != uidRec.curCapability Loading
services/core/java/com/android/server/am/ProcessList.java +2 −0 Original line number Diff line number Diff line Loading @@ -2808,6 +2808,7 @@ public final class ProcessList { uidRec.curCapability); } proc.uidRecord = uidRec; uidRec.procRecords.add(proc); // Reset render thread tid if it was already set, so new process can set it again. proc.renderThreadTid = 0; Loading Loading @@ -2901,6 +2902,7 @@ public final class ProcessList { } if (old != null && old.uidRecord != null) { old.uidRecord.numProcs--; old.uidRecord.procRecords.remove(old); if (old.uidRecord.numProcs == 0) { // No more processes using this uid, tell clients it is gone. if (DEBUG_UID_OBSERVERS) Slog.i(TAG_UID_OBSERVERS, Loading
services/core/java/com/android/server/am/UidRecord.java +2 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.ActivityManager; import android.content.pm.PackageManager; import android.os.SystemClock; import android.os.UserHandle; import android.util.ArraySet; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import android.util.proto.ProtoUtils; Loading @@ -44,6 +45,7 @@ public final class UidRecord { boolean idle; boolean setIdle; int numProcs; ArraySet<ProcessRecord> procRecords = new ArraySet<>(); /** * Sequence number associated with the {@link #mCurProcState}. This is incremented using Loading