Loading core/java/android/os/BatteryStats.java +96 −52 Original line number Diff line number Diff line Loading @@ -114,6 +114,11 @@ public abstract class BatteryStats implements Parcelable { */ public static final int WIFI_BATCHED_SCAN = 11; /** * A constant indicating a process state timer */ public static final int PROCESS_STATE = 12; /** * Include all of the data in the stats, including previously saved data. */ Loading Loading @@ -150,6 +155,7 @@ public abstract class BatteryStats implements Parcelable { private static final String SENSOR_DATA = "sr"; private static final String VIBRATOR_DATA = "vib"; private static final String FOREGROUND_DATA = "fg"; private static final String STATE_TIME_DATA = "st"; private static final String WAKELOCK_DATA = "wl"; private static final String KERNEL_WAKELOCK_DATA = "kwl"; private static final String WAKEUP_REASON_DATA = "wr"; Loading Loading @@ -278,7 +284,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Integer sensor ids to Uid.Sensor objects. */ public abstract Map<Integer, ? extends Sensor> getSensorStats(); public abstract SparseArray<? extends Sensor> getSensorStats(); /** * Returns a mapping containing active process data. Loading Loading @@ -328,6 +334,22 @@ public abstract class BatteryStats implements Parcelable { public abstract long getAudioTurnedOnTime(long elapsedRealtimeUs, int which); public abstract long getVideoTurnedOnTime(long elapsedRealtimeUs, int which); public abstract Timer getForegroundActivityTimer(); // Time this uid has any processes in foreground state. public static final int PROCESS_STATE_FOREGROUND = 0; // Time this uid has any process in active state (not cached). public static final int PROCESS_STATE_ACTIVE = 1; // Time this uid has any processes running at all. public static final int PROCESS_STATE_RUNNING = 2; // Total number of process states we track. public static final int NUM_PROCESS_STATE = 3; static final String[] PROCESS_STATE_NAMES = { "Foreground", "Active", "Running" }; public abstract long getProcessStateTime(int state, long elapsedRealtimeUs, int which); public abstract Timer getVibratorOnTimer(); public static final int NUM_WIFI_BATCHED_SCAN_BINS = 5; Loading Loading @@ -2083,12 +2105,11 @@ public abstract class BatteryStats implements Parcelable { } } Map<Integer, ? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); if (sensors.size() > 0) { for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> ent : sensors.entrySet()) { Uid.Sensor se = ent.getValue(); int sensorNumber = ent.getKey(); SparseArray<? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); int NSE = sensors.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor se = sensors.valueAt(ise); int sensorNumber = sensors.keyAt(ise); Timer timer = se.getSensorTime(); if (timer != null) { // Convert from microseconds to milliseconds with rounding Loading @@ -2099,7 +2120,6 @@ public abstract class BatteryStats implements Parcelable { } } } } Timer vibTimer = u.getVibratorOnTimer(); if (vibTimer != null) { Loading @@ -2121,6 +2141,16 @@ public abstract class BatteryStats implements Parcelable { } } Object[] stateTimes = new Object[Uid.NUM_PROCESS_STATE]; long totalStateTime = 0; for (int ips=0; ips<Uid.NUM_PROCESS_STATE; ips++) { totalStateTime += u.getProcessStateTime(ips, rawRealtime, which); stateTimes[ips] = (totalStateTime + 500) / 1000; } if (totalStateTime > 0) { dumpLine(pw, uid, category, STATE_TIME_DATA, stateTimes); } Map<String, ? extends BatteryStats.Uid.Proc> processStats = u.getProcessStats(); if (processStats.size() > 0) { for (Map.Entry<String, ? extends BatteryStats.Uid.Proc> ent Loading Loading @@ -2968,12 +2998,11 @@ public abstract class BatteryStats implements Parcelable { } } Map<Integer, ? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); if (sensors.size() > 0) { for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> ent : sensors.entrySet()) { Uid.Sensor se = ent.getValue(); int sensorNumber = ent.getKey(); SparseArray<? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); int NSE = sensors.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor se = sensors.valueAt(ise); int sensorNumber = sensors.keyAt(ise); sb.setLength(0); sb.append(prefix); sb.append(" Sensor "); Loading Loading @@ -3007,7 +3036,6 @@ public abstract class BatteryStats implements Parcelable { pw.println(sb.toString()); uidActivity = true; } } Timer vibTimer = u.getVibratorOnTimer(); if (vibTimer != null) { Loading Loading @@ -3047,6 +3075,22 @@ public abstract class BatteryStats implements Parcelable { } } long totalStateTime = 0; for (int ips=0; ips<Uid.NUM_PROCESS_STATE; ips++) { long time = u.getProcessStateTime(ips, rawRealtime, which); if (time > 0) { totalStateTime += time; sb.setLength(0); sb.append(prefix); sb.append(" "); sb.append(Uid.PROCESS_STATE_NAMES[ips]); sb.append(" for: "); formatTimeMs(sb, (totalStateTime + 500) / 1000); pw.println(sb.toString()); uidActivity = true; } } Map<String, ? extends BatteryStats.Uid.Proc> processStats = u.getProcessStats(); if (processStats.size() > 0) { for (Map.Entry<String, ? extends BatteryStats.Uid.Proc> ent Loading core/java/com/android/internal/app/IBatteryStats.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,10 @@ interface IBatteryStats { void noteEvent(int code, String name, int uid); void noteProcessStart(String name, int uid); void noteProcessState(String name, int uid, int state); void noteProcessFinish(String name, int uid); void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteStopWakelock(int uid, int pid, String name, String historyName, int type); Loading core/java/com/android/internal/os/BatteryStatsHelper.java +5 −5 Original line number Diff line number Diff line Loading @@ -440,11 +440,11 @@ public class BatteryStatsHelper { } // Process Sensor usage Map<Integer, ? extends BatteryStats.Uid.Sensor> sensorStats = u.getSensorStats(); for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> sensorEntry : sensorStats.entrySet()) { Uid.Sensor sensor = sensorEntry.getValue(); int sensorHandle = sensor.getHandle(); SparseArray<? extends BatteryStats.Uid.Sensor> sensorStats = u.getSensorStats(); int NSE = sensorStats.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor sensor = sensorStats.valueAt(ise); int sensorHandle = sensorStats.keyAt(ise); BatteryStats.Timer timer = sensor.getSensorTime(); long sensorTime = timer.getTotalTimeLocked(mRawRealtime, which) / 1000; double multiplier = 0; Loading core/java/com/android/internal/os/BatteryStatsImpl.java +249 −99 File changed.Preview size limit exceeded, changes collapsed. Show changes services/core/java/com/android/server/am/ActivityManagerService.java +23 −24 Original line number Diff line number Diff line Loading @@ -138,7 +138,6 @@ import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; import android.net.Proxy; import android.net.ProxyInfo; import android.net.Uri; Loading Loading @@ -2997,12 +2996,10 @@ public final class ActivityManagerService extends ActivityManagerNative app.processName, uid, uid, gids, debugFlags, mountExternal, app.info.targetSdkVersion, app.info.seinfo, requiredAbi, null); BatteryStatsImpl bs = mBatteryStatsService.getActiveStatistics(); synchronized (bs) { if (bs.isOnBattery()) { bs.getProcessStatsLocked(app.uid, app.processName).incStartsLocked(); } if (app.isolated) { mBatteryStatsService.addIsolatedUid(app.uid, app.info.uid); } mBatteryStatsService.noteProcessStart(app.processName, app.info.uid); EventLog.writeEvent(EventLogTags.AM_PROC_START, UserHandle.getUserId(uid), startResult.pid, uid, Loading Loading @@ -3052,14 +3049,13 @@ public final class ActivityManagerService extends ActivityManagerNative mHandler.sendMessageDelayed(msg, startResult.usingWrapper ? PROC_START_TIMEOUT_WITH_WRAPPER : PROC_START_TIMEOUT); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_START, app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.addIsolatedUid(app.uid, app.info.uid); } } catch (RuntimeException e) { // XXX do better error recovery. app.setPid(0); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Slog.e(TAG, "Failure starting process " + app.processName, e); } } Loading Loading @@ -5121,8 +5117,7 @@ public final class ActivityManagerService extends ActivityManagerNative mPidsSelfLocked.remove(pid); mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -5166,8 +5161,7 @@ public final class ActivityManagerService extends ActivityManagerNative mHeavyWeightProcess.userId, 0)); mHeavyWeightProcess = null; } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -13285,8 +13279,7 @@ public final class ActivityManagerService extends ActivityManagerNative mPidsSelfLocked.remove(app.pid); mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -16039,7 +16032,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.notCachedSinceIdle = false; } if (!doingAll) { setProcessTrackerState(app, mProcessStats.getMemFactorLocked(), now); setProcessTrackerStateLocked(app, mProcessStats.getMemFactorLocked(), now); } else { app.procStateChanged = true; } Loading Loading @@ -16092,10 +16085,16 @@ public final class ActivityManagerService extends ActivityManagerNative return success; } private final void setProcessTrackerState(ProcessRecord proc, int memFactor, long now) { if (proc.thread != null && proc.baseProcessTracker != null) { private final void setProcessTrackerStateLocked(ProcessRecord proc, int memFactor, long now) { if (proc.thread != null) { if (proc.baseProcessTracker != null) { proc.baseProcessTracker.setState(proc.repProcState, memFactor, now, proc.pkgList); } if (proc.repProcState >= 0) { mBatteryStatsService.noteProcessState(proc.processName, proc.info.uid, proc.repProcState); } } } private final boolean updateOomAdjLocked(ProcessRecord app, int cachedAdj, Loading Loading @@ -16149,7 +16148,7 @@ public final class ActivityManagerService extends ActivityManagerNative ActivityRecord act = mStackSupervisor.resumedAppLocked(); String pkg; int uid; if (act != null && !act.sleeping) { if (act != null) { pkg = act.packageName; uid = act.info.applicationInfo.uid; } else { Loading Loading @@ -16430,7 +16429,7 @@ public final class ActivityManagerService extends ActivityManagerNative for (int i=N-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.procStateChanged) { setProcessTrackerState(app, trackerMemFactor, now); setProcessTrackerStateLocked(app, trackerMemFactor, now); app.procStateChanged = false; } if (app.curProcState >= ActivityManager.PROCESS_STATE_HOME Loading Loading @@ -16521,7 +16520,7 @@ public final class ActivityManagerService extends ActivityManagerNative for (int i=N-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.procStateChanged) { setProcessTrackerState(app, trackerMemFactor, now); setProcessTrackerStateLocked(app, trackerMemFactor, now); app.procStateChanged = false; } if ((app.curProcState >= ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND Loading
core/java/android/os/BatteryStats.java +96 −52 Original line number Diff line number Diff line Loading @@ -114,6 +114,11 @@ public abstract class BatteryStats implements Parcelable { */ public static final int WIFI_BATCHED_SCAN = 11; /** * A constant indicating a process state timer */ public static final int PROCESS_STATE = 12; /** * Include all of the data in the stats, including previously saved data. */ Loading Loading @@ -150,6 +155,7 @@ public abstract class BatteryStats implements Parcelable { private static final String SENSOR_DATA = "sr"; private static final String VIBRATOR_DATA = "vib"; private static final String FOREGROUND_DATA = "fg"; private static final String STATE_TIME_DATA = "st"; private static final String WAKELOCK_DATA = "wl"; private static final String KERNEL_WAKELOCK_DATA = "kwl"; private static final String WAKEUP_REASON_DATA = "wr"; Loading Loading @@ -278,7 +284,7 @@ public abstract class BatteryStats implements Parcelable { * * @return a Map from Integer sensor ids to Uid.Sensor objects. */ public abstract Map<Integer, ? extends Sensor> getSensorStats(); public abstract SparseArray<? extends Sensor> getSensorStats(); /** * Returns a mapping containing active process data. Loading Loading @@ -328,6 +334,22 @@ public abstract class BatteryStats implements Parcelable { public abstract long getAudioTurnedOnTime(long elapsedRealtimeUs, int which); public abstract long getVideoTurnedOnTime(long elapsedRealtimeUs, int which); public abstract Timer getForegroundActivityTimer(); // Time this uid has any processes in foreground state. public static final int PROCESS_STATE_FOREGROUND = 0; // Time this uid has any process in active state (not cached). public static final int PROCESS_STATE_ACTIVE = 1; // Time this uid has any processes running at all. public static final int PROCESS_STATE_RUNNING = 2; // Total number of process states we track. public static final int NUM_PROCESS_STATE = 3; static final String[] PROCESS_STATE_NAMES = { "Foreground", "Active", "Running" }; public abstract long getProcessStateTime(int state, long elapsedRealtimeUs, int which); public abstract Timer getVibratorOnTimer(); public static final int NUM_WIFI_BATCHED_SCAN_BINS = 5; Loading Loading @@ -2083,12 +2105,11 @@ public abstract class BatteryStats implements Parcelable { } } Map<Integer, ? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); if (sensors.size() > 0) { for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> ent : sensors.entrySet()) { Uid.Sensor se = ent.getValue(); int sensorNumber = ent.getKey(); SparseArray<? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); int NSE = sensors.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor se = sensors.valueAt(ise); int sensorNumber = sensors.keyAt(ise); Timer timer = se.getSensorTime(); if (timer != null) { // Convert from microseconds to milliseconds with rounding Loading @@ -2099,7 +2120,6 @@ public abstract class BatteryStats implements Parcelable { } } } } Timer vibTimer = u.getVibratorOnTimer(); if (vibTimer != null) { Loading @@ -2121,6 +2141,16 @@ public abstract class BatteryStats implements Parcelable { } } Object[] stateTimes = new Object[Uid.NUM_PROCESS_STATE]; long totalStateTime = 0; for (int ips=0; ips<Uid.NUM_PROCESS_STATE; ips++) { totalStateTime += u.getProcessStateTime(ips, rawRealtime, which); stateTimes[ips] = (totalStateTime + 500) / 1000; } if (totalStateTime > 0) { dumpLine(pw, uid, category, STATE_TIME_DATA, stateTimes); } Map<String, ? extends BatteryStats.Uid.Proc> processStats = u.getProcessStats(); if (processStats.size() > 0) { for (Map.Entry<String, ? extends BatteryStats.Uid.Proc> ent Loading Loading @@ -2968,12 +2998,11 @@ public abstract class BatteryStats implements Parcelable { } } Map<Integer, ? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); if (sensors.size() > 0) { for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> ent : sensors.entrySet()) { Uid.Sensor se = ent.getValue(); int sensorNumber = ent.getKey(); SparseArray<? extends BatteryStats.Uid.Sensor> sensors = u.getSensorStats(); int NSE = sensors.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor se = sensors.valueAt(ise); int sensorNumber = sensors.keyAt(ise); sb.setLength(0); sb.append(prefix); sb.append(" Sensor "); Loading Loading @@ -3007,7 +3036,6 @@ public abstract class BatteryStats implements Parcelable { pw.println(sb.toString()); uidActivity = true; } } Timer vibTimer = u.getVibratorOnTimer(); if (vibTimer != null) { Loading Loading @@ -3047,6 +3075,22 @@ public abstract class BatteryStats implements Parcelable { } } long totalStateTime = 0; for (int ips=0; ips<Uid.NUM_PROCESS_STATE; ips++) { long time = u.getProcessStateTime(ips, rawRealtime, which); if (time > 0) { totalStateTime += time; sb.setLength(0); sb.append(prefix); sb.append(" "); sb.append(Uid.PROCESS_STATE_NAMES[ips]); sb.append(" for: "); formatTimeMs(sb, (totalStateTime + 500) / 1000); pw.println(sb.toString()); uidActivity = true; } } Map<String, ? extends BatteryStats.Uid.Proc> processStats = u.getProcessStats(); if (processStats.size() > 0) { for (Map.Entry<String, ? extends BatteryStats.Uid.Proc> ent Loading
core/java/com/android/internal/app/IBatteryStats.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,10 @@ interface IBatteryStats { void noteEvent(int code, String name, int uid); void noteProcessStart(String name, int uid); void noteProcessState(String name, int uid, int state); void noteProcessFinish(String name, int uid); void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteStopWakelock(int uid, int pid, String name, String historyName, int type); Loading
core/java/com/android/internal/os/BatteryStatsHelper.java +5 −5 Original line number Diff line number Diff line Loading @@ -440,11 +440,11 @@ public class BatteryStatsHelper { } // Process Sensor usage Map<Integer, ? extends BatteryStats.Uid.Sensor> sensorStats = u.getSensorStats(); for (Map.Entry<Integer, ? extends BatteryStats.Uid.Sensor> sensorEntry : sensorStats.entrySet()) { Uid.Sensor sensor = sensorEntry.getValue(); int sensorHandle = sensor.getHandle(); SparseArray<? extends BatteryStats.Uid.Sensor> sensorStats = u.getSensorStats(); int NSE = sensorStats.size(); for (int ise=0; ise<NSE; ise++) { Uid.Sensor sensor = sensorStats.valueAt(ise); int sensorHandle = sensorStats.keyAt(ise); BatteryStats.Timer timer = sensor.getSensorTime(); long sensorTime = timer.getTotalTimeLocked(mRawRealtime, which) / 1000; double multiplier = 0; Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +249 −99 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/core/java/com/android/server/am/ActivityManagerService.java +23 −24 Original line number Diff line number Diff line Loading @@ -138,7 +138,6 @@ import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; import android.net.Proxy; import android.net.ProxyInfo; import android.net.Uri; Loading Loading @@ -2997,12 +2996,10 @@ public final class ActivityManagerService extends ActivityManagerNative app.processName, uid, uid, gids, debugFlags, mountExternal, app.info.targetSdkVersion, app.info.seinfo, requiredAbi, null); BatteryStatsImpl bs = mBatteryStatsService.getActiveStatistics(); synchronized (bs) { if (bs.isOnBattery()) { bs.getProcessStatsLocked(app.uid, app.processName).incStartsLocked(); } if (app.isolated) { mBatteryStatsService.addIsolatedUid(app.uid, app.info.uid); } mBatteryStatsService.noteProcessStart(app.processName, app.info.uid); EventLog.writeEvent(EventLogTags.AM_PROC_START, UserHandle.getUserId(uid), startResult.pid, uid, Loading Loading @@ -3052,14 +3049,13 @@ public final class ActivityManagerService extends ActivityManagerNative mHandler.sendMessageDelayed(msg, startResult.usingWrapper ? PROC_START_TIMEOUT_WITH_WRAPPER : PROC_START_TIMEOUT); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_START, app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.addIsolatedUid(app.uid, app.info.uid); } } catch (RuntimeException e) { // XXX do better error recovery. app.setPid(0); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Slog.e(TAG, "Failure starting process " + app.processName, e); } } Loading Loading @@ -5121,8 +5117,7 @@ public final class ActivityManagerService extends ActivityManagerNative mPidsSelfLocked.remove(pid); mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -5166,8 +5161,7 @@ public final class ActivityManagerService extends ActivityManagerNative mHeavyWeightProcess.userId, 0)); mHeavyWeightProcess = null; } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -13285,8 +13279,7 @@ public final class ActivityManagerService extends ActivityManagerNative mPidsSelfLocked.remove(app.pid); mHandler.removeMessages(PROC_START_TIMEOUT_MSG, app); } mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_PROC_FINISH, app.processName, app.info.uid); mBatteryStatsService.noteProcessFinish(app.processName, app.info.uid); if (app.isolated) { mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } Loading Loading @@ -16039,7 +16032,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.notCachedSinceIdle = false; } if (!doingAll) { setProcessTrackerState(app, mProcessStats.getMemFactorLocked(), now); setProcessTrackerStateLocked(app, mProcessStats.getMemFactorLocked(), now); } else { app.procStateChanged = true; } Loading Loading @@ -16092,10 +16085,16 @@ public final class ActivityManagerService extends ActivityManagerNative return success; } private final void setProcessTrackerState(ProcessRecord proc, int memFactor, long now) { if (proc.thread != null && proc.baseProcessTracker != null) { private final void setProcessTrackerStateLocked(ProcessRecord proc, int memFactor, long now) { if (proc.thread != null) { if (proc.baseProcessTracker != null) { proc.baseProcessTracker.setState(proc.repProcState, memFactor, now, proc.pkgList); } if (proc.repProcState >= 0) { mBatteryStatsService.noteProcessState(proc.processName, proc.info.uid, proc.repProcState); } } } private final boolean updateOomAdjLocked(ProcessRecord app, int cachedAdj, Loading Loading @@ -16149,7 +16148,7 @@ public final class ActivityManagerService extends ActivityManagerNative ActivityRecord act = mStackSupervisor.resumedAppLocked(); String pkg; int uid; if (act != null && !act.sleeping) { if (act != null) { pkg = act.packageName; uid = act.info.applicationInfo.uid; } else { Loading Loading @@ -16430,7 +16429,7 @@ public final class ActivityManagerService extends ActivityManagerNative for (int i=N-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.procStateChanged) { setProcessTrackerState(app, trackerMemFactor, now); setProcessTrackerStateLocked(app, trackerMemFactor, now); app.procStateChanged = false; } if (app.curProcState >= ActivityManager.PROCESS_STATE_HOME Loading Loading @@ -16521,7 +16520,7 @@ public final class ActivityManagerService extends ActivityManagerNative for (int i=N-1; i>=0; i--) { ProcessRecord app = mLruProcesses.get(i); if (allChanged || app.procStateChanged) { setProcessTrackerState(app, trackerMemFactor, now); setProcessTrackerStateLocked(app, trackerMemFactor, now); app.procStateChanged = false; } if ((app.curProcState >= ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND