Loading core/java/android/os/BatteryStats.java +24 −8 Original line number Diff line number Diff line Loading @@ -141,6 +141,11 @@ public abstract class BatteryStats implements Parcelable { */ public static final int CAMERA_TURNED_ON = 17; /** * A constant indicating a doze wake lock timer. */ public static final int WAKE_TYPE_DOZE = 18; /** * Include all of the data in the stats, including previously saved data. */ Loading Loading @@ -3834,6 +3839,7 @@ public abstract class BatteryStats implements Parcelable { final ArrayMap<String, ? extends BatteryStats.Uid.Wakelock> wakelocks = u.getWakelockStats(); long totalFullWakelock = 0, totalPartialWakelock = 0, totalWindowWakelock = 0; long totalDozeWakelock = 0; int countWakelock = 0; for (int iw=wakelocks.size()-1; iw>=0; iw--) { final Uid.Wakelock wl = wakelocks.valueAt(iw); Loading @@ -3848,19 +3854,21 @@ public abstract class BatteryStats implements Parcelable { "partial", which, linePrefix); linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, "window", which, linePrefix); if (true || !linePrefix.equals(": ")) { linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_DOZE), rawRealtime, "doze", which, linePrefix); sb.append(" realtime"); // Only print out wake locks that were held pw.println(sb.toString()); uidActivity = true; countWakelock++; } totalFullWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_FULL), rawRealtime, which); totalPartialWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_PARTIAL), rawRealtime, which); totalWindowWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, which); totalDozeWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_DOZE), rawRealtime, which); } if (countWakelock > 1) { if (totalFullWakelock != 0 || totalPartialWakelock != 0 Loading Loading @@ -3890,6 +3898,14 @@ public abstract class BatteryStats implements Parcelable { formatTimeMs(sb, totalWindowWakelock); sb.append("window"); } if (totalDozeWakelock != 0) { if (needComma) { sb.append(","); } needComma = true; formatTimeMs(sb, totalDozeWakelock); sb.append("doze"); } sb.append(" realtime"); pw.println(sb.toString()); } Loading core/java/com/android/internal/os/BatteryStatsImpl.java +35 −5 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public final class BatteryStatsImpl extends BatteryStats { private static final int MAGIC = 0xBA757475; // 'BATSTATS' // Current on-disk Parcel version private static final int VERSION = 128 + (USE_OLD_HISTORY ? 1000 : 0); private static final int VERSION = 129 + (USE_OLD_HISTORY ? 1000 : 0); // Maximum number of items we will record in the history. private static final int MAX_HISTORY_ITEMS = 2000; Loading Loading @@ -208,6 +208,7 @@ public final class BatteryStatsImpl extends BatteryStats { final ArrayList<StopwatchTimer> mPartialTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mFullTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mWindowTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mDozeTimers = new ArrayList<>(); final SparseArray<ArrayList<StopwatchTimer>> mSensorTimers = new SparseArray<>(); final ArrayList<StopwatchTimer> mWifiRunningTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mFullWifiLockTimers = new ArrayList<>(); Loading Loading @@ -5647,6 +5648,11 @@ public final class BatteryStatsImpl extends BatteryStats { */ StopwatchTimer mTimerWindow; /** * How long (in ms) this uid has had a doze wake lock. */ StopwatchTimer mTimerDoze; /** * Reads a possibly null Timer from a Parcel. The timer is associated with the * proper timer pool from the given BatteryStatsImpl object. Loading Loading @@ -5674,6 +5680,9 @@ public final class BatteryStatsImpl extends BatteryStats { if (mTimerWindow != null) { wlactive |= !mTimerWindow.reset(false); } if (mTimerDoze != null) { wlactive |= !mTimerDoze.reset(false); } if (!wlactive) { if (mTimerFull != null) { mTimerFull.detach(); Loading @@ -5687,6 +5696,10 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow.detach(); mTimerWindow = null; } if (mTimerDoze != null) { mTimerDoze.detach(); mTimerDoze = null; } } return !wlactive; } Loading @@ -5694,16 +5707,16 @@ public final class BatteryStatsImpl extends BatteryStats { void readFromParcelLocked(TimeBase timeBase, TimeBase screenOffTimeBase, Parcel in) { mTimerPartial = readTimerFromParcel(WAKE_TYPE_PARTIAL, mPartialTimers, screenOffTimeBase, in); mTimerFull = readTimerFromParcel(WAKE_TYPE_FULL, mFullTimers, timeBase, in); mTimerWindow = readTimerFromParcel(WAKE_TYPE_WINDOW, mWindowTimers, timeBase, in); mTimerFull = readTimerFromParcel(WAKE_TYPE_FULL, mFullTimers, timeBase, in); mTimerWindow = readTimerFromParcel(WAKE_TYPE_WINDOW, mWindowTimers, timeBase, in); mTimerDoze = readTimerFromParcel(WAKE_TYPE_DOZE, mDozeTimers, timeBase, in); } void writeToParcelLocked(Parcel out, long elapsedRealtimeUs) { Timer.writeTimerToParcel(out, mTimerPartial, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerFull, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerWindow, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerDoze, elapsedRealtimeUs); } @Override Loading @@ -5712,6 +5725,7 @@ public final class BatteryStatsImpl extends BatteryStats { case WAKE_TYPE_FULL: return mTimerFull; case WAKE_TYPE_PARTIAL: return mTimerPartial; case WAKE_TYPE_WINDOW: return mTimerWindow; case WAKE_TYPE_DOZE: return mTimerDoze; default: throw new IllegalArgumentException("type = " + type); } } Loading Loading @@ -5743,6 +5757,13 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow = t; } return t; case WAKE_TYPE_DOZE: t = mTimerDoze; if (t == null) { t = new StopwatchTimer(Uid.this, WAKE_TYPE_DOZE, mDozeTimers, mOnBatteryTimeBase); mTimerDoze = t; } default: throw new IllegalArgumentException("type=" + type); } Loading Loading @@ -6599,6 +6620,9 @@ public final class BatteryStatsImpl extends BatteryStats { if (in.readInt() != 0) { wl.getStopwatchTimer(WAKE_TYPE_WINDOW).readSummaryFromParcelLocked(in); } if (in.readInt() != 0) { wl.getStopwatchTimer(WAKE_TYPE_DOZE).readSummaryFromParcelLocked(in); } } public StopwatchTimer getSensorTimerLocked(int sensor, boolean create) { Loading Loading @@ -9586,6 +9610,12 @@ public final class BatteryStatsImpl extends BatteryStats { } else { out.writeInt(0); } if (wl.mTimerDoze != null) { out.writeInt(1); wl.mTimerDoze.writeSummaryFromParcelLocked(out, NOWREAL_SYS); } else { out.writeInt(0); } } final ArrayMap<String, StopwatchTimer> syncStats = u.mSyncStats.getMap(); Loading Loading
core/java/android/os/BatteryStats.java +24 −8 Original line number Diff line number Diff line Loading @@ -141,6 +141,11 @@ public abstract class BatteryStats implements Parcelable { */ public static final int CAMERA_TURNED_ON = 17; /** * A constant indicating a doze wake lock timer. */ public static final int WAKE_TYPE_DOZE = 18; /** * Include all of the data in the stats, including previously saved data. */ Loading Loading @@ -3834,6 +3839,7 @@ public abstract class BatteryStats implements Parcelable { final ArrayMap<String, ? extends BatteryStats.Uid.Wakelock> wakelocks = u.getWakelockStats(); long totalFullWakelock = 0, totalPartialWakelock = 0, totalWindowWakelock = 0; long totalDozeWakelock = 0; int countWakelock = 0; for (int iw=wakelocks.size()-1; iw>=0; iw--) { final Uid.Wakelock wl = wakelocks.valueAt(iw); Loading @@ -3848,19 +3854,21 @@ public abstract class BatteryStats implements Parcelable { "partial", which, linePrefix); linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, "window", which, linePrefix); if (true || !linePrefix.equals(": ")) { linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_DOZE), rawRealtime, "doze", which, linePrefix); sb.append(" realtime"); // Only print out wake locks that were held pw.println(sb.toString()); uidActivity = true; countWakelock++; } totalFullWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_FULL), rawRealtime, which); totalPartialWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_PARTIAL), rawRealtime, which); totalWindowWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, which); totalDozeWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_DOZE), rawRealtime, which); } if (countWakelock > 1) { if (totalFullWakelock != 0 || totalPartialWakelock != 0 Loading Loading @@ -3890,6 +3898,14 @@ public abstract class BatteryStats implements Parcelable { formatTimeMs(sb, totalWindowWakelock); sb.append("window"); } if (totalDozeWakelock != 0) { if (needComma) { sb.append(","); } needComma = true; formatTimeMs(sb, totalDozeWakelock); sb.append("doze"); } sb.append(" realtime"); pw.println(sb.toString()); } Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +35 −5 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public final class BatteryStatsImpl extends BatteryStats { private static final int MAGIC = 0xBA757475; // 'BATSTATS' // Current on-disk Parcel version private static final int VERSION = 128 + (USE_OLD_HISTORY ? 1000 : 0); private static final int VERSION = 129 + (USE_OLD_HISTORY ? 1000 : 0); // Maximum number of items we will record in the history. private static final int MAX_HISTORY_ITEMS = 2000; Loading Loading @@ -208,6 +208,7 @@ public final class BatteryStatsImpl extends BatteryStats { final ArrayList<StopwatchTimer> mPartialTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mFullTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mWindowTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mDozeTimers = new ArrayList<>(); final SparseArray<ArrayList<StopwatchTimer>> mSensorTimers = new SparseArray<>(); final ArrayList<StopwatchTimer> mWifiRunningTimers = new ArrayList<>(); final ArrayList<StopwatchTimer> mFullWifiLockTimers = new ArrayList<>(); Loading Loading @@ -5647,6 +5648,11 @@ public final class BatteryStatsImpl extends BatteryStats { */ StopwatchTimer mTimerWindow; /** * How long (in ms) this uid has had a doze wake lock. */ StopwatchTimer mTimerDoze; /** * Reads a possibly null Timer from a Parcel. The timer is associated with the * proper timer pool from the given BatteryStatsImpl object. Loading Loading @@ -5674,6 +5680,9 @@ public final class BatteryStatsImpl extends BatteryStats { if (mTimerWindow != null) { wlactive |= !mTimerWindow.reset(false); } if (mTimerDoze != null) { wlactive |= !mTimerDoze.reset(false); } if (!wlactive) { if (mTimerFull != null) { mTimerFull.detach(); Loading @@ -5687,6 +5696,10 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow.detach(); mTimerWindow = null; } if (mTimerDoze != null) { mTimerDoze.detach(); mTimerDoze = null; } } return !wlactive; } Loading @@ -5694,16 +5707,16 @@ public final class BatteryStatsImpl extends BatteryStats { void readFromParcelLocked(TimeBase timeBase, TimeBase screenOffTimeBase, Parcel in) { mTimerPartial = readTimerFromParcel(WAKE_TYPE_PARTIAL, mPartialTimers, screenOffTimeBase, in); mTimerFull = readTimerFromParcel(WAKE_TYPE_FULL, mFullTimers, timeBase, in); mTimerWindow = readTimerFromParcel(WAKE_TYPE_WINDOW, mWindowTimers, timeBase, in); mTimerFull = readTimerFromParcel(WAKE_TYPE_FULL, mFullTimers, timeBase, in); mTimerWindow = readTimerFromParcel(WAKE_TYPE_WINDOW, mWindowTimers, timeBase, in); mTimerDoze = readTimerFromParcel(WAKE_TYPE_DOZE, mDozeTimers, timeBase, in); } void writeToParcelLocked(Parcel out, long elapsedRealtimeUs) { Timer.writeTimerToParcel(out, mTimerPartial, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerFull, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerWindow, elapsedRealtimeUs); Timer.writeTimerToParcel(out, mTimerDoze, elapsedRealtimeUs); } @Override Loading @@ -5712,6 +5725,7 @@ public final class BatteryStatsImpl extends BatteryStats { case WAKE_TYPE_FULL: return mTimerFull; case WAKE_TYPE_PARTIAL: return mTimerPartial; case WAKE_TYPE_WINDOW: return mTimerWindow; case WAKE_TYPE_DOZE: return mTimerDoze; default: throw new IllegalArgumentException("type = " + type); } } Loading Loading @@ -5743,6 +5757,13 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow = t; } return t; case WAKE_TYPE_DOZE: t = mTimerDoze; if (t == null) { t = new StopwatchTimer(Uid.this, WAKE_TYPE_DOZE, mDozeTimers, mOnBatteryTimeBase); mTimerDoze = t; } default: throw new IllegalArgumentException("type=" + type); } Loading Loading @@ -6599,6 +6620,9 @@ public final class BatteryStatsImpl extends BatteryStats { if (in.readInt() != 0) { wl.getStopwatchTimer(WAKE_TYPE_WINDOW).readSummaryFromParcelLocked(in); } if (in.readInt() != 0) { wl.getStopwatchTimer(WAKE_TYPE_DOZE).readSummaryFromParcelLocked(in); } } public StopwatchTimer getSensorTimerLocked(int sensor, boolean create) { Loading Loading @@ -9586,6 +9610,12 @@ public final class BatteryStatsImpl extends BatteryStats { } else { out.writeInt(0); } if (wl.mTimerDoze != null) { out.writeInt(1); wl.mTimerDoze.writeSummaryFromParcelLocked(out, NOWREAL_SYS); } else { out.writeInt(0); } } final ArrayMap<String, StopwatchTimer> syncStats = u.mSyncStats.getMap(); Loading