summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amith Yamasani <yamasani@google.com> 2019-04-17 15:43:01 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-04-17 15:43:01 +0000
commit0ba84f8f24dc14850ff7fc7e512b52ff1d6d1ac1 (patch)
treeaff5ef17ed7d4ace007af2a234dc0efb01745df5
parent00202de30e4691421835e979f8e285eb7f7a93c3 (diff)
parentd2775cd459e01da4204540154b65b3d678932495 (diff)
Merge "Include oom_adjust reason in trace" into qt-dev
-rw-r--r--services/core/java/com/android/server/am/ActiveServices.java22
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java65
-rw-r--r--services/core/java/com/android/server/am/BroadcastQueue.java7
-rw-r--r--services/core/java/com/android/server/am/OomAdjuster.java29
-rw-r--r--services/core/java/com/android/server/am/ProcessList.java3
-rw-r--r--services/core/java/com/android/server/am/ProcessRecord.java2
6 files changed, 77 insertions, 51 deletions
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index 4ec90ba5b803..0271354b3fff 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -1806,7 +1806,7 @@ public final class ActiveServices {
|| (callerApp.getCurProcState() <= ActivityManager.PROCESS_STATE_TOP
&& (flags & Context.BIND_TREAT_LIKE_ACTIVITY) != 0),
b.client);
- mAm.updateOomAdjLocked();
+ mAm.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_BIND_SERVICE);
}
if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "Bind " + s + " with " + b
@@ -1957,11 +1957,12 @@ public final class ActiveServices {
r.binding.service.app.hasClientActivities()
|| r.binding.service.app.treatLikeActivity, null);
}
- mAm.updateOomAdjLocked(r.binding.service.app, false);
+ mAm.updateOomAdjLocked(r.binding.service.app, false,
+ OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
}
}
- mAm.updateOomAdjLocked();
+ mAm.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
} finally {
Binder.restoreCallingIdentity(origId);
@@ -2676,7 +2677,7 @@ public final class ActiveServices {
bumpServiceExecutingLocked(r, execInFg, "create");
mAm.updateLruProcessLocked(app, false, null);
updateServiceForegroundLocked(r.app, /* oomAdj= */ false);
- mAm.updateOomAdjLocked();
+ mAm.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_START_SERVICE);
boolean created = false;
try {
@@ -2797,7 +2798,7 @@ public final class ActiveServices {
bumpServiceExecutingLocked(r, execInFg, "start");
if (!oomAdjusted) {
oomAdjusted = true;
- mAm.updateOomAdjLocked(r.app, true);
+ mAm.updateOomAdjLocked(r.app, true, OomAdjuster.OOM_ADJ_REASON_START_SERVICE);
}
if (r.fgRequired && !r.fgWaiting) {
if (!r.isForeground) {
@@ -2923,7 +2924,8 @@ public final class ActiveServices {
if (ibr.hasBound) {
try {
bumpServiceExecutingLocked(r, false, "bring down unbind");
- mAm.updateOomAdjLocked(r.app, true);
+ mAm.updateOomAdjLocked(r.app, true,
+ OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
ibr.hasBound = false;
ibr.requested = false;
r.app.thread.scheduleUnbindService(r,
@@ -3038,7 +3040,8 @@ public final class ActiveServices {
bumpServiceExecutingLocked(r, false, "destroy");
mDestroyingServices.add(r);
r.destroying = true;
- mAm.updateOomAdjLocked(r.app, true);
+ mAm.updateOomAdjLocked(r.app, true,
+ OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
r.app.thread.scheduleStopService(r);
} catch (Exception e) {
Slog.w(TAG, "Exception when destroying service "
@@ -3143,7 +3146,8 @@ public final class ActiveServices {
// it to go down there and we want it to start out near the top.
mAm.updateLruProcessLocked(s.app, false, null);
}
- mAm.updateOomAdjLocked(s.app, true);
+ mAm.updateOomAdjLocked(s.app, true,
+ OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
b.intent.hasBound = false;
// Assume the client doesn't want to know about a rebind;
// we will deal with that later if it asks for one.
@@ -3296,7 +3300,7 @@ public final class ActiveServices {
mDestroyingServices.remove(r);
r.bindings.clear();
}
- mAm.updateOomAdjLocked(r.app, true);
+ mAm.updateOomAdjLocked(r.app, true, OomAdjuster.OOM_ADJ_REASON_UNBIND_SERVICE);
}
r.executeFg = false;
if (r.tracker != null) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 3b6b404170c5..cdcd9e1ad58c 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1972,7 +1972,7 @@ public class ActivityManagerService extends IActivityManager.Stub
app.makeActive(mSystemThread.getApplicationThread(), mProcessStats);
mPidsSelfLocked.put(app.pid, app);
mProcessList.updateLruProcessLocked(app, false, null);
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_NONE);
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(
@@ -2456,7 +2456,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// bind background threads to little cores
// this is expected to fail inside of framework tests because apps can't touch cpusets directly
// make sure we've already adjusted system_server's internal view of itself first
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_NONE);
try {
Process.setThreadGroupAndCpuset(BackgroundThread.get().getThreadId(),
Process.THREAD_GROUP_SYSTEM);
@@ -3634,7 +3634,7 @@ public class ActivityManagerService extends IActivityManager.Stub
handleAppDiedLocked(app, false, true);
if (doOomAdj) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_PROCESS_END);
}
if (doLowMem) {
doLowMemReportIfNeededLocked(app);
@@ -5002,7 +5002,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
if (!didSomething) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_PROCESS_BEGIN);
checkTime(startTime, "attachApplicationLocked: after updateOomAdjLocked");
}
@@ -5485,7 +5485,7 @@ public class ActivityManagerService extends IActivityManager.Stub
synchronized (this) {
mConstants.setOverrideMaxCachedProcesses(max);
}
- trimApplications();
+ trimApplications(OomAdjuster.OOM_ADJ_REASON_PROCESS_END);
}
@Override
@@ -5511,7 +5511,7 @@ public class ActivityManagerService extends IActivityManager.Stub
pr.forcingToImportant = null;
updateProcessForegroundLocked(pr, false, 0, false);
}
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
@@ -5557,7 +5557,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
if (changed) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
}
@@ -6714,7 +6714,8 @@ public class ActivityManagerService extends IActivityManager.Stub
checkTime(startTime, "getContentProviderImpl: before updateOomAdj");
final int verifiedAdj = cpr.proc.verifiedAdj;
- boolean success = updateOomAdjLocked(cpr.proc, true);
+ boolean success = updateOomAdjLocked(cpr.proc, true,
+ OomAdjuster.OOM_ADJ_REASON_GET_PROVIDER);
// XXX things have changed so updateOomAdjLocked doesn't actually tell us
// if the process has been successfully adjusted. So to reduce races with
// it, we will check whether the process still exists. Note that this doesn't
@@ -7147,7 +7148,7 @@ public class ActivityManagerService extends IActivityManager.Stub
throw new NullPointerException("connection is null");
}
if (decProviderCountLocked(conn, null, null, stable)) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_REMOVE_PROVIDER);
}
}
} finally {
@@ -7188,7 +7189,7 @@ public class ActivityManagerService extends IActivityManager.Stub
ContentProviderRecord localCpr = mProviderMap.getProviderByClass(comp, userId);
if (localCpr.hasExternalProcessHandles()) {
if (localCpr.removeExternalProcessHandleLocked(token)) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_REMOVE_PROVIDER);
} else {
Slog.e(TAG, "Attmpt to remove content provider " + localCpr
+ " with no external reference for token: "
@@ -7255,7 +7256,7 @@ public class ActivityManagerService extends IActivityManager.Stub
dst.setProcess(r);
dst.notifyAll();
}
- updateOomAdjLocked(r, true);
+ updateOomAdjLocked(r, true, OomAdjuster.OOM_ADJ_REASON_GET_PROVIDER);
maybeUpdateProviderUsageStatsLocked(r, src.info.packageName,
src.info.authority);
}
@@ -7645,7 +7646,7 @@ public class ActivityManagerService extends IActivityManager.Stub
new HostingRecord("added application",
customProcess != null ? customProcess : info.processName));
mProcessList.updateLruProcessLocked(app, false, null);
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_PROCESS_BEGIN);
}
// This package really, really can not be stopped.
@@ -7740,7 +7741,7 @@ public class ActivityManagerService extends IActivityManager.Stub
mActivityTaskManager.onScreenAwakeChanged(isAwake);
mOomAdjProfiler.onWakefulnessChanged(wakefulness);
}
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
@@ -8320,7 +8321,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
}
if (changed) {
- updateOomAdjLocked(pr, true);
+ updateOomAdjLocked(pr, true, OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
} finally {
@@ -8350,7 +8351,7 @@ public class ActivityManagerService extends IActivityManager.Stub
Slog.i(TAG, "Setting runningRemoteAnimation=" + pr.runningRemoteAnimation
+ " for pid=" + pid);
}
- updateOomAdjLocked(pr, true);
+ updateOomAdjLocked(pr, true, OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
@@ -13984,7 +13985,7 @@ public class ActivityManagerService extends IActivityManager.Stub
mBackupTargets.put(targetUserId, r);
// Try not to kill the process during backup
- updateOomAdjLocked(proc, true);
+ updateOomAdjLocked(proc, true, OomAdjuster.OOM_ADJ_REASON_NONE);
// If the process is already attached, schedule the creation of the backup agent now.
// If it is not yet live, this will be done when it attaches to the framework.
@@ -14099,7 +14100,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// Not backing this app up any more; reset its OOM adjustment
final ProcessRecord proc = backupTarget.app;
- updateOomAdjLocked(proc, true);
+ updateOomAdjLocked(proc, true, OomAdjuster.OOM_ADJ_REASON_NONE);
proc.inFullBackup = false;
oldBackupUid = backupTarget != null ? backupTarget.appInfo.uid : -1;
@@ -14388,7 +14389,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// If we actually concluded any broadcasts, we might now be able
// to trim the recipients' apps from our working set
if (doTrim) {
- trimApplications();
+ trimApplications(OomAdjuster.OOM_ADJ_REASON_FINISH_RECEIVER);
return;
}
@@ -15463,7 +15464,7 @@ public class ActivityManagerService extends IActivityManager.Stub
r.queue.processNextBroadcastLocked(/*fromMsg=*/ false, /*skipOomAdj=*/ true);
}
// updateOomAdjLocked() will be done here
- trimApplicationsLocked();
+ trimApplicationsLocked(OomAdjuster.OOM_ADJ_REASON_FINISH_RECEIVER);
}
} finally {
@@ -16448,7 +16449,7 @@ public class ActivityManagerService extends IActivityManager.Stub
item.foregroundServiceTypes = fgServiceTypes;
if (oomAdj) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
}
@@ -16496,11 +16497,13 @@ public class ActivityManagerService extends IActivityManager.Stub
* @param app The process to update
* @param oomAdjAll If it's ok to call updateOomAdjLocked() for all running apps
* if necessary, or skip.
+ * @param oomAdjReason
* @return whether updateOomAdjLocked(app) was successful.
*/
@GuardedBy("this")
- final boolean updateOomAdjLocked(ProcessRecord app, boolean oomAdjAll) {
- return mOomAdjuster.updateOomAdjLocked(app, oomAdjAll);
+ final boolean updateOomAdjLocked(ProcessRecord app, boolean oomAdjAll,
+ String oomAdjReason) {
+ return mOomAdjuster.updateOomAdjLocked(app, oomAdjAll, oomAdjReason);
}
static final class ProcStatsRunnable implements Runnable {
@@ -16693,8 +16696,8 @@ public class ActivityManagerService extends IActivityManager.Stub
}
@GuardedBy("this")
- final void updateOomAdjLocked() {
- mOomAdjuster.updateOomAdjLocked();
+ final void updateOomAdjLocked(String oomAdjReason) {
+ mOomAdjuster.updateOomAdjLocked(oomAdjReason);
}
@Override
@@ -16979,14 +16982,14 @@ public class ActivityManagerService extends IActivityManager.Stub
mOomAdjuster.setUidTempWhitelistStateLocked(uid, onWhitelist);
}
- final void trimApplications() {
+ final void trimApplications(String oomAdjReason) {
synchronized (this) {
- trimApplicationsLocked();
+ trimApplicationsLocked(oomAdjReason);
}
}
@GuardedBy("this")
- final void trimApplicationsLocked() {
+ final void trimApplicationsLocked(String oomAdjReason) {
// First remove any unused application processes whose package
// has been removed.
for (int i = mProcessList.mRemovedProcesses.size() - 1; i >= 0; i--) {
@@ -17018,7 +17021,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// Now update the oom adj for all processes. Don't skip this, since other callers
// might be depending on it.
- updateOomAdjLocked();
+ updateOomAdjLocked(oomAdjReason);
}
/** This method sends the specified signal to each of the persistent apps */
@@ -17627,7 +17630,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
pr.setHasOverlayUi(hasOverlayUi);
//Slog.i(TAG, "Setting hasOverlayUi=" + pr.hasOverlayUi + " for pid=" + pid);
- updateOomAdjLocked(pr, true);
+ updateOomAdjLocked(pr, true, OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
}
}
@@ -17784,7 +17787,7 @@ public class ActivityManagerService extends IActivityManager.Stub
@Override
public void trimApplications() {
- ActivityManagerService.this.trimApplications();
+ ActivityManagerService.this.trimApplications(OomAdjuster.OOM_ADJ_REASON_ACTIVITY);
}
public void killProcessesForRemovedTask(ArrayList<Object> procsToKill) {
@@ -17836,7 +17839,7 @@ public class ActivityManagerService extends IActivityManager.Stub
@Override
public void updateOomAdj() {
synchronized (ActivityManagerService.this) {
- ActivityManagerService.this.updateOomAdjLocked();
+ ActivityManagerService.this.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_NONE);
}
}
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 3c57c3bcb7d6..ee9b5614584f 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -309,7 +309,7 @@ public final class BroadcastQueue {
app.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_RECEIVER);
mService.mProcessList.updateLruProcessLocked(app, false, null);
if (!skipOomAdj) {
- mService.updateOomAdjLocked();
+ mService.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_NONE);
}
// Tell the application to launch this receiver.
@@ -791,7 +791,8 @@ public final class BroadcastQueue {
// are already core system stuff so don't matter for this.
r.curApp = filter.receiverList.app;
filter.receiverList.app.curReceivers.add(r);
- mService.updateOomAdjLocked(r.curApp, true);
+ mService.updateOomAdjLocked(r.curApp, true,
+ OomAdjuster.OOM_ADJ_REASON_START_RECEIVER);
}
}
try {
@@ -1028,7 +1029,7 @@ public final class BroadcastQueue {
// If we had finished the last ordered broadcast, then
// make sure all processes have correct oom and sched
// adjustments.
- mService.updateOomAdjLocked();
+ mService.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_START_RECEIVER);
}
// when we have no more ordered broadcast on this queue, stop logging
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 44d435f2b539..8ae7c7d3e0c8 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -90,6 +90,21 @@ import java.util.Arrays;
public final class OomAdjuster {
private static final String TAG = "OomAdjuster";
+ static final String OOM_ADJ_REASON_METHOD = "updateOomAdj";
+ static final String OOM_ADJ_REASON_NONE = OOM_ADJ_REASON_METHOD + "_meh";
+ static final String OOM_ADJ_REASON_ACTIVITY = OOM_ADJ_REASON_METHOD + "_activityChange";
+ static final String OOM_ADJ_REASON_FINISH_RECEIVER = OOM_ADJ_REASON_METHOD + "_finishReceiver";
+ static final String OOM_ADJ_REASON_START_RECEIVER = OOM_ADJ_REASON_METHOD + "_startReceiver";
+ static final String OOM_ADJ_REASON_BIND_SERVICE = OOM_ADJ_REASON_METHOD + "_bindService";
+ static final String OOM_ADJ_REASON_UNBIND_SERVICE = OOM_ADJ_REASON_METHOD + "_unbindService";
+ static final String OOM_ADJ_REASON_START_SERVICE = OOM_ADJ_REASON_METHOD + "_startService";
+ static final String OOM_ADJ_REASON_GET_PROVIDER = OOM_ADJ_REASON_METHOD + "_getProvider";
+ static final String OOM_ADJ_REASON_REMOVE_PROVIDER = OOM_ADJ_REASON_METHOD + "_removeProvider";
+ static final String OOM_ADJ_REASON_UI_VISIBILITY = OOM_ADJ_REASON_METHOD + "_uiVisibility";
+ static final String OOM_ADJ_REASON_WHITELIST = OOM_ADJ_REASON_METHOD + "_whitelistChange";
+ static final String OOM_ADJ_REASON_PROCESS_BEGIN = OOM_ADJ_REASON_METHOD + "_processBegin";
+ static final String OOM_ADJ_REASON_PROCESS_END = OOM_ADJ_REASON_METHOD + "_processEnd";
+
/**
* For some direct access we need to power manager.
*/
@@ -156,10 +171,12 @@ public final class OomAdjuster {
* @param app The process to update
* @param oomAdjAll If it's ok to call updateOomAdjLocked() for all running apps
* if necessary, or skip.
+ * @param oomAdjReason
* @return whether updateOomAdjLocked(app) was successful.
*/
@GuardedBy("mService")
- final boolean updateOomAdjLocked(ProcessRecord app, boolean oomAdjAll) {
+ boolean updateOomAdjLocked(ProcessRecord app, boolean oomAdjAll,
+ String oomAdjReason) {
final ProcessRecord TOP_APP = mService.getTopAppLocked();
final boolean wasCached = app.cached;
@@ -177,7 +194,7 @@ public final class OomAdjuster {
&& (wasCached != app.cached || app.getCurRawAdj() == ProcessList.UNKNOWN_ADJ)) {
// Changed to/from cached state, so apps after it in the LRU
// list may also be changed.
- updateOomAdjLocked();
+ updateOomAdjLocked(oomAdjReason);
}
return success;
}
@@ -195,8 +212,8 @@ public final class OomAdjuster {
}
@GuardedBy("mService")
- final void updateOomAdjLocked() {
- Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "updateOomAdj");
+ void updateOomAdjLocked(String oomAdjReason) {
+ Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, oomAdjReason);
mService.mOomAdjProfiler.oomAdjStarted();
final ProcessRecord TOP_APP = mService.getTopAppLocked();
final long now = SystemClock.uptimeMillis();
@@ -2009,7 +2026,7 @@ public final class OomAdjuster {
}
}
if (changed) {
- updateOomAdjLocked();
+ updateOomAdjLocked(OOM_ADJ_REASON_WHITELIST);
}
}
@@ -2019,7 +2036,7 @@ public final class OomAdjuster {
final UidRecord uidRec = mActiveUids.get(uid);
if (uidRec != null && uidRec.curWhitelist != onWhitelist) {
uidRec.curWhitelist = onWhitelist;
- updateOomAdjLocked();
+ updateOomAdjLocked(OOM_ADJ_REASON_WHITELIST);
}
}
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 0a926f9a801a..316368a52ce2 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -2227,9 +2227,10 @@ public final class ProcessList {
for (AppZygote appZygote : zygotesToKill) {
killAppZygoteIfNeededLocked(appZygote);
}
- mService.updateOomAdjLocked();
+ mService.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_PROCESS_END);
return N > 0;
}
+
@GuardedBy("mService")
boolean removeProcessLocked(ProcessRecord app,
boolean callerWillRestart, boolean allowRestart, String reason) {
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index 933f41c47167..49930c1f4d62 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -1301,7 +1301,7 @@ class ProcessRecord implements WindowProcessListener {
}
mService.mProcessList.updateLruProcessLocked(this, activityChange, null /* client */);
if (updateOomAdj) {
- mService.updateOomAdjLocked();
+ mService.updateOomAdjLocked(OomAdjuster.OOM_ADJ_REASON_ACTIVITY);
}
}
}