Loading core/java/android/app/ActivityManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -2205,6 +2205,8 @@ public class ActivityManager { pw.println(); dumpService(pw, fd, "procstats", new String[] { packageName }); pw.println(); dumpService(pw, fd, "usagestats", new String[] { "--packages", packageName }); pw.println(); dumpService(pw, fd, "package", new String[] { packageName }); pw.println(); dumpService(pw, fd, BatteryStats.SERVICE_NAME, new String[] { packageName }); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +0 −1 Original line number Diff line number Diff line Loading @@ -613,7 +613,6 @@ public final class BatteryStatsImpl extends BatteryStats { * Constructs from a parcel. * @param type * @param unpluggables * @param powerType * @param in */ Timer(int type, ArrayList<Unpluggable> unpluggables, Parcel in) { Loading services/java/com/android/server/am/ActiveServices.java +10 −10 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public final class ActiveServices { r.lastActivity = SystemClock.uptimeMillis(); r.startRequested = true; if (r.tracker != null) { r.tracker.setStarted(true, mAm.mProcessTracker.getMemFactor(), r.lastActivity); r.tracker.setStarted(true, mAm.mProcessTracker.getMemFactorLocked(), r.lastActivity); } r.callStart = false; r.pendingStarts.add(new ServiceRecord.StartItem(r, false, r.makeNextStartId(), Loading @@ -265,7 +265,7 @@ public final class ActiveServices { } service.startRequested = false; if (service.tracker != null) { service.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), service.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } service.callStart = false; Loading Loading @@ -365,7 +365,7 @@ public final class ActiveServices { } r.startRequested = false; if (r.tracker != null) { r.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), r.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } r.callStart = false; Loading Loading @@ -505,7 +505,7 @@ public final class ActiveServices { if (!s.hasAutoCreateConnections()) { // This is the first binding, let the tracker know. if (s.tracker != null) { s.tracker.setBound(true, mAm.mProcessTracker.getMemFactor(), s.tracker.setBound(true, mAm.mProcessTracker.getMemFactorLocked(), s.lastActivity); } } Loading Loading @@ -827,7 +827,7 @@ public final class ActiveServices { long now = SystemClock.uptimeMillis(); if (r.executeNesting == 0) { if (r.tracker != null) { r.tracker.setExecuting(true, mAm.mProcessTracker.getMemFactor(), now); r.tracker.setExecuting(true, mAm.mProcessTracker.getMemFactorLocked(), now); } if (r.app != null) { if (r.app.executingServices.size() == 0) { Loading Loading @@ -1327,7 +1327,7 @@ public final class ActiveServices { ((ServiceRestarter)r.restarter).setService(null); } int memFactor = mAm.mProcessTracker.getMemFactor(); int memFactor = mAm.mProcessTracker.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); if (r.tracker != null) { r.tracker.setStarted(false, memFactor, now); Loading Loading @@ -1394,7 +1394,7 @@ public final class ActiveServices { boolean hasAutoCreate = s.hasAutoCreateConnections(); if (!hasAutoCreate) { if (s.tracker != null) { s.tracker.setBound(false, mAm.mProcessTracker.getMemFactor(), s.tracker.setBound(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } } Loading Loading @@ -1490,7 +1490,7 @@ public final class ActiveServices { mAm.updateOomAdjLocked(r.app); } if (r.tracker != null) { r.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactor(), r.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } } Loading Loading @@ -1685,7 +1685,7 @@ public final class ActiveServices { sr.isolatedProc = null; sr.executeNesting = 0; if (sr.tracker != null) { sr.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactor(), sr.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } if (mStoppingServices.remove(sr)) { Loading Loading @@ -1720,7 +1720,7 @@ public final class ActiveServices { if (sr.pendingStarts.size() == 0) { sr.startRequested = false; if (sr.tracker != null) { sr.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), sr.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } if (!sr.hasAutoCreateConnections()) { Loading services/java/com/android/server/am/ActivityManagerService.java +38 −11 Original line number Diff line number Diff line Loading @@ -272,7 +272,11 @@ public final class ActivityManagerService extends ActivityManagerNative // The amount of time we will sample PSS of the current top process while the // screen is on. static final int PSS_TOP_INTERVAL = 5*60*1000; static final int PSS_TOP_INTERVAL = 2*60*1000; // The amount of time we will sample PSS of any processes that more at least as // important as perceptible while the screen is on. static final int PSS_PERCEPTIBLE_INTERVAL = 10*60*1000; // The maximum amount of time for a process to be around until we will take // a PSS snapshot on its next oom change. Loading Loading @@ -423,7 +427,7 @@ public final class ActivityManagerService extends ActivityManagerNative * Tracking long-term execution of processes to look for abuse and other * bad app behavior. */ ProcessTracker mProcessTracker; final ProcessTracker mProcessTracker; /** * The currently running isolated processes. Loading Loading @@ -1528,12 +1532,12 @@ public final class ActivityManagerService extends ActivityManagerNative if (proc.thread != null) { oomAdj = proc.setAdj; pid = proc.pid; i++; } else { proc = null; oomAdj = 0; pid = 0; } i++; } if (proc != null) { long pss = Debug.getPss(pid); Loading Loading @@ -1620,7 +1624,6 @@ public final class ActivityManagerService extends ActivityManagerNative m.mContext = context; m.mFactoryTest = factoryTest; m.mIntentFirewall = new IntentFirewall(m.new IntentFirewallInterface()); m.mProcessTracker = new ProcessTracker(context); m.mStackSupervisor = new ActivityStackSupervisor(m, context, thr.mLooper); Loading Loading @@ -1817,8 +1820,10 @@ public final class ActivityManagerService extends ActivityManagerNative : mBatteryStatsService.getActiveStatistics().getIsOnBattery(); mBatteryStatsService.getActiveStatistics().setCallback(this); mUsageStatsService = new UsageStatsService(new File( systemDir, "usagestats").toString()); mProcessTracker = new ProcessTracker(new File(systemDir, "procstats")); mProcessTracker.readLocked(); mUsageStatsService = new UsageStatsService(new File(systemDir, "usagestats").toString()); mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml")); mGrantFile = new AtomicFile(new File(systemDir, "urigrants.xml")); Loading Loading @@ -7636,6 +7641,9 @@ public final class ActivityManagerService extends ActivityManagerNative mAppOpsService.shutdown(); mUsageStatsService.shutdown(); mBatteryStatsService.shutdown(); synchronized (this) { mProcessTracker.shutdownLocked(); } return timedout; } Loading Loading @@ -14203,8 +14211,17 @@ public final class ActivityManagerService extends ActivityManagerNative app.setRawAdj = app.curRawAdj; } if (!mSleeping) { if (app == TOP_APP && now > (app.lastPssTime+PSS_TOP_INTERVAL)) { // For the current top application we will very aggressively collect // PSS data to have a good measure of memory use while in the foreground. requestPssLocked(app, now, true); } else if (app.curAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && now > (app.lastPssTime+PSS_TOP_INTERVAL)) { // For any unkillable processes, we will more regularly collect their PSS // since they have a significant impact on the memory state of the device. requestPssLocked(app, now, true); } } if (app.curAdj != app.setAdj) { Loading @@ -14223,7 +14240,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.setAdj = app.curAdj; app.setAdjChanged = true; if (!doingAll) { app.setProcessTrackerState(TOP_APP, mProcessTracker.getMemFactor(), app.setProcessTrackerState(TOP_APP, mProcessTracker.getMemFactorLocked(), now, mProcessList); } } else { Loading Loading @@ -14599,9 +14616,9 @@ public final class ActivityManagerService extends ActivityManagerNative mStackSupervisor.scheduleDestroyAllActivities(null, "always-finish"); } boolean allChanged = mProcessTracker.setMemFactor(memFactor, !mSleeping, now); boolean allChanged = mProcessTracker.setMemFactorLocked(memFactor, !mSleeping, now); if (changed || allChanged) { memFactor = mProcessTracker.getMemFactor(); memFactor = mProcessTracker.getMemFactorLocked(); for (i=mLruProcesses.size()-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.setAdjChanged) { Loading @@ -14613,6 +14630,16 @@ public final class ActivityManagerService extends ActivityManagerNative requestPssAllProcsLocked(now, false); } if (mProcessTracker.shouldWriteNowLocked(now)) { mHandler.post(new Runnable() { @Override public void run() { synchronized (ActivityManagerService.this) { mProcessTracker.writeStateAsyncLocked(); } } }); } if (DEBUG_OOM_ADJ) { Slog.d(TAG, "Did OOM ADJ in " + (SystemClock.uptimeMillis()-now) + "ms"); } services/java/com/android/server/am/ProcessTracker.java +827 −318 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/app/ActivityManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -2205,6 +2205,8 @@ public class ActivityManager { pw.println(); dumpService(pw, fd, "procstats", new String[] { packageName }); pw.println(); dumpService(pw, fd, "usagestats", new String[] { "--packages", packageName }); pw.println(); dumpService(pw, fd, "package", new String[] { packageName }); pw.println(); dumpService(pw, fd, BatteryStats.SERVICE_NAME, new String[] { packageName }); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +0 −1 Original line number Diff line number Diff line Loading @@ -613,7 +613,6 @@ public final class BatteryStatsImpl extends BatteryStats { * Constructs from a parcel. * @param type * @param unpluggables * @param powerType * @param in */ Timer(int type, ArrayList<Unpluggable> unpluggables, Parcel in) { Loading
services/java/com/android/server/am/ActiveServices.java +10 −10 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public final class ActiveServices { r.lastActivity = SystemClock.uptimeMillis(); r.startRequested = true; if (r.tracker != null) { r.tracker.setStarted(true, mAm.mProcessTracker.getMemFactor(), r.lastActivity); r.tracker.setStarted(true, mAm.mProcessTracker.getMemFactorLocked(), r.lastActivity); } r.callStart = false; r.pendingStarts.add(new ServiceRecord.StartItem(r, false, r.makeNextStartId(), Loading @@ -265,7 +265,7 @@ public final class ActiveServices { } service.startRequested = false; if (service.tracker != null) { service.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), service.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } service.callStart = false; Loading Loading @@ -365,7 +365,7 @@ public final class ActiveServices { } r.startRequested = false; if (r.tracker != null) { r.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), r.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } r.callStart = false; Loading Loading @@ -505,7 +505,7 @@ public final class ActiveServices { if (!s.hasAutoCreateConnections()) { // This is the first binding, let the tracker know. if (s.tracker != null) { s.tracker.setBound(true, mAm.mProcessTracker.getMemFactor(), s.tracker.setBound(true, mAm.mProcessTracker.getMemFactorLocked(), s.lastActivity); } } Loading Loading @@ -827,7 +827,7 @@ public final class ActiveServices { long now = SystemClock.uptimeMillis(); if (r.executeNesting == 0) { if (r.tracker != null) { r.tracker.setExecuting(true, mAm.mProcessTracker.getMemFactor(), now); r.tracker.setExecuting(true, mAm.mProcessTracker.getMemFactorLocked(), now); } if (r.app != null) { if (r.app.executingServices.size() == 0) { Loading Loading @@ -1327,7 +1327,7 @@ public final class ActiveServices { ((ServiceRestarter)r.restarter).setService(null); } int memFactor = mAm.mProcessTracker.getMemFactor(); int memFactor = mAm.mProcessTracker.getMemFactorLocked(); long now = SystemClock.uptimeMillis(); if (r.tracker != null) { r.tracker.setStarted(false, memFactor, now); Loading Loading @@ -1394,7 +1394,7 @@ public final class ActiveServices { boolean hasAutoCreate = s.hasAutoCreateConnections(); if (!hasAutoCreate) { if (s.tracker != null) { s.tracker.setBound(false, mAm.mProcessTracker.getMemFactor(), s.tracker.setBound(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } } Loading Loading @@ -1490,7 +1490,7 @@ public final class ActiveServices { mAm.updateOomAdjLocked(r.app); } if (r.tracker != null) { r.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactor(), r.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } } Loading Loading @@ -1685,7 +1685,7 @@ public final class ActiveServices { sr.isolatedProc = null; sr.executeNesting = 0; if (sr.tracker != null) { sr.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactor(), sr.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } if (mStoppingServices.remove(sr)) { Loading Loading @@ -1720,7 +1720,7 @@ public final class ActiveServices { if (sr.pendingStarts.size() == 0) { sr.startRequested = false; if (sr.tracker != null) { sr.tracker.setStarted(false, mAm.mProcessTracker.getMemFactor(), sr.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(), SystemClock.uptimeMillis()); } if (!sr.hasAutoCreateConnections()) { Loading
services/java/com/android/server/am/ActivityManagerService.java +38 −11 Original line number Diff line number Diff line Loading @@ -272,7 +272,11 @@ public final class ActivityManagerService extends ActivityManagerNative // The amount of time we will sample PSS of the current top process while the // screen is on. static final int PSS_TOP_INTERVAL = 5*60*1000; static final int PSS_TOP_INTERVAL = 2*60*1000; // The amount of time we will sample PSS of any processes that more at least as // important as perceptible while the screen is on. static final int PSS_PERCEPTIBLE_INTERVAL = 10*60*1000; // The maximum amount of time for a process to be around until we will take // a PSS snapshot on its next oom change. Loading Loading @@ -423,7 +427,7 @@ public final class ActivityManagerService extends ActivityManagerNative * Tracking long-term execution of processes to look for abuse and other * bad app behavior. */ ProcessTracker mProcessTracker; final ProcessTracker mProcessTracker; /** * The currently running isolated processes. Loading Loading @@ -1528,12 +1532,12 @@ public final class ActivityManagerService extends ActivityManagerNative if (proc.thread != null) { oomAdj = proc.setAdj; pid = proc.pid; i++; } else { proc = null; oomAdj = 0; pid = 0; } i++; } if (proc != null) { long pss = Debug.getPss(pid); Loading Loading @@ -1620,7 +1624,6 @@ public final class ActivityManagerService extends ActivityManagerNative m.mContext = context; m.mFactoryTest = factoryTest; m.mIntentFirewall = new IntentFirewall(m.new IntentFirewallInterface()); m.mProcessTracker = new ProcessTracker(context); m.mStackSupervisor = new ActivityStackSupervisor(m, context, thr.mLooper); Loading Loading @@ -1817,8 +1820,10 @@ public final class ActivityManagerService extends ActivityManagerNative : mBatteryStatsService.getActiveStatistics().getIsOnBattery(); mBatteryStatsService.getActiveStatistics().setCallback(this); mUsageStatsService = new UsageStatsService(new File( systemDir, "usagestats").toString()); mProcessTracker = new ProcessTracker(new File(systemDir, "procstats")); mProcessTracker.readLocked(); mUsageStatsService = new UsageStatsService(new File(systemDir, "usagestats").toString()); mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml")); mGrantFile = new AtomicFile(new File(systemDir, "urigrants.xml")); Loading Loading @@ -7636,6 +7641,9 @@ public final class ActivityManagerService extends ActivityManagerNative mAppOpsService.shutdown(); mUsageStatsService.shutdown(); mBatteryStatsService.shutdown(); synchronized (this) { mProcessTracker.shutdownLocked(); } return timedout; } Loading Loading @@ -14203,8 +14211,17 @@ public final class ActivityManagerService extends ActivityManagerNative app.setRawAdj = app.curRawAdj; } if (!mSleeping) { if (app == TOP_APP && now > (app.lastPssTime+PSS_TOP_INTERVAL)) { // For the current top application we will very aggressively collect // PSS data to have a good measure of memory use while in the foreground. requestPssLocked(app, now, true); } else if (app.curAdj <= ProcessList.PERCEPTIBLE_APP_ADJ && now > (app.lastPssTime+PSS_TOP_INTERVAL)) { // For any unkillable processes, we will more regularly collect their PSS // since they have a significant impact on the memory state of the device. requestPssLocked(app, now, true); } } if (app.curAdj != app.setAdj) { Loading @@ -14223,7 +14240,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.setAdj = app.curAdj; app.setAdjChanged = true; if (!doingAll) { app.setProcessTrackerState(TOP_APP, mProcessTracker.getMemFactor(), app.setProcessTrackerState(TOP_APP, mProcessTracker.getMemFactorLocked(), now, mProcessList); } } else { Loading Loading @@ -14599,9 +14616,9 @@ public final class ActivityManagerService extends ActivityManagerNative mStackSupervisor.scheduleDestroyAllActivities(null, "always-finish"); } boolean allChanged = mProcessTracker.setMemFactor(memFactor, !mSleeping, now); boolean allChanged = mProcessTracker.setMemFactorLocked(memFactor, !mSleeping, now); if (changed || allChanged) { memFactor = mProcessTracker.getMemFactor(); memFactor = mProcessTracker.getMemFactorLocked(); for (i=mLruProcesses.size()-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.setAdjChanged) { Loading @@ -14613,6 +14630,16 @@ public final class ActivityManagerService extends ActivityManagerNative requestPssAllProcsLocked(now, false); } if (mProcessTracker.shouldWriteNowLocked(now)) { mHandler.post(new Runnable() { @Override public void run() { synchronized (ActivityManagerService.this) { mProcessTracker.writeStateAsyncLocked(); } } }); } if (DEBUG_OOM_ADJ) { Slog.d(TAG, "Did OOM ADJ in " + (SystemClock.uptimeMillis()-now) + "ms"); }
services/java/com/android/server/am/ProcessTracker.java +827 −318 File changed.Preview size limit exceeded, changes collapsed. Show changes