From 6a8bd7bc13251fe1710cb529d14ee28b0c4ab5d0 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 19 Jun 2015 15:07:51 -0700 Subject: [PATCH] Repurpose doze wake lock stats for draw wake lock instead. The doze wake lock is an internal implementation detail with no power impact. However the draw wake lock is much more interesting to track because it's essentially like a special purpose partial wake lock which may be acquired while dozing. Bug: 21949905 Change-Id: Iedd5f366eb010a47a9691374c5cd3d85ea68173d --- core/java/android/os/BatteryStats.java | 18 ++++----- .../android/internal/os/BatteryStatsImpl.java | 39 ++++++++++--------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 593f80462533d..7fda30acdf02f 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -142,9 +142,9 @@ public abstract class BatteryStats implements Parcelable { public static final int CAMERA_TURNED_ON = 17; /** - * A constant indicating a doze wake lock timer. + * A constant indicating a draw wake lock timer. */ - public static final int WAKE_TYPE_DOZE = 18; + public static final int WAKE_TYPE_DRAW = 18; /** * Include all of the data in the stats, including previously saved data. @@ -3839,7 +3839,7 @@ public abstract class BatteryStats implements Parcelable { final ArrayMap wakelocks = u.getWakelockStats(); long totalFullWakelock = 0, totalPartialWakelock = 0, totalWindowWakelock = 0; - long totalDozeWakelock = 0; + long totalDrawWakelock = 0; int countWakelock = 0; for (int iw=wakelocks.size()-1; iw>=0; iw--) { final Uid.Wakelock wl = wakelocks.valueAt(iw); @@ -3854,8 +3854,8 @@ public abstract class BatteryStats implements Parcelable { "partial", which, linePrefix); linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, "window", which, linePrefix); - linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_DOZE), rawRealtime, - "doze", which, linePrefix); + linePrefix = printWakeLock(sb, wl.getWakeTime(WAKE_TYPE_DRAW), rawRealtime, + "draw", which, linePrefix); sb.append(" realtime"); pw.println(sb.toString()); uidActivity = true; @@ -3867,7 +3867,7 @@ public abstract class BatteryStats implements Parcelable { rawRealtime, which); totalWindowWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_WINDOW), rawRealtime, which); - totalDozeWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_DOZE), + totalDrawWakelock += computeWakeLock(wl.getWakeTime(WAKE_TYPE_DRAW), rawRealtime, which); } if (countWakelock > 1) { @@ -3898,13 +3898,13 @@ public abstract class BatteryStats implements Parcelable { formatTimeMs(sb, totalWindowWakelock); sb.append("window"); } - if (totalDozeWakelock != 0) { + if (totalDrawWakelock != 0) { if (needComma) { sb.append(","); } needComma = true; - formatTimeMs(sb, totalDozeWakelock); - sb.append("doze"); + formatTimeMs(sb, totalDrawWakelock); + sb.append("draw"); } sb.append(" realtime"); pw.println(sb.toString()); diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 83ce5f6c6aae9..1bd821d7154da 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -208,7 +208,7 @@ public final class BatteryStatsImpl extends BatteryStats { final ArrayList mPartialTimers = new ArrayList<>(); final ArrayList mFullTimers = new ArrayList<>(); final ArrayList mWindowTimers = new ArrayList<>(); - final ArrayList mDozeTimers = new ArrayList<>(); + final ArrayList mDrawTimers = new ArrayList<>(); final SparseArray> mSensorTimers = new SparseArray<>(); final ArrayList mWifiRunningTimers = new ArrayList<>(); final ArrayList mFullWifiLockTimers = new ArrayList<>(); @@ -5649,9 +5649,9 @@ public final class BatteryStatsImpl extends BatteryStats { StopwatchTimer mTimerWindow; /** - * How long (in ms) this uid has had a doze wake lock. + * How long (in ms) this uid has had a draw wake lock. */ - StopwatchTimer mTimerDoze; + StopwatchTimer mTimerDraw; /** * Reads a possibly null Timer from a Parcel. The timer is associated with the @@ -5680,8 +5680,8 @@ public final class BatteryStatsImpl extends BatteryStats { if (mTimerWindow != null) { wlactive |= !mTimerWindow.reset(false); } - if (mTimerDoze != null) { - wlactive |= !mTimerDoze.reset(false); + if (mTimerDraw != null) { + wlactive |= !mTimerDraw.reset(false); } if (!wlactive) { if (mTimerFull != null) { @@ -5696,9 +5696,9 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow.detach(); mTimerWindow = null; } - if (mTimerDoze != null) { - mTimerDoze.detach(); - mTimerDoze = null; + if (mTimerDraw != null) { + mTimerDraw.detach(); + mTimerDraw = null; } } return !wlactive; @@ -5709,14 +5709,14 @@ public final class BatteryStatsImpl extends BatteryStats { mPartialTimers, screenOffTimeBase, 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); + mTimerDraw = readTimerFromParcel(WAKE_TYPE_DRAW, mDrawTimers, 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); + Timer.writeTimerToParcel(out, mTimerDraw, elapsedRealtimeUs); } @Override @@ -5725,7 +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; + case WAKE_TYPE_DRAW: return mTimerDraw; default: throw new IllegalArgumentException("type = " + type); } } @@ -5757,13 +5757,14 @@ public final class BatteryStatsImpl extends BatteryStats { mTimerWindow = t; } return t; - case WAKE_TYPE_DOZE: - t = mTimerDoze; + case WAKE_TYPE_DRAW: + t = mTimerDraw; if (t == null) { - t = new StopwatchTimer(Uid.this, WAKE_TYPE_DOZE, - mDozeTimers, mOnBatteryTimeBase); - mTimerDoze = t; + t = new StopwatchTimer(Uid.this, WAKE_TYPE_DRAW, + mDrawTimers, mOnBatteryTimeBase); + mTimerDraw = t; } + return t; default: throw new IllegalArgumentException("type=" + type); } @@ -6621,7 +6622,7 @@ public final class BatteryStatsImpl extends BatteryStats { wl.getStopwatchTimer(WAKE_TYPE_WINDOW).readSummaryFromParcelLocked(in); } if (in.readInt() != 0) { - wl.getStopwatchTimer(WAKE_TYPE_DOZE).readSummaryFromParcelLocked(in); + wl.getStopwatchTimer(WAKE_TYPE_DRAW).readSummaryFromParcelLocked(in); } } @@ -9610,9 +9611,9 @@ public final class BatteryStatsImpl extends BatteryStats { } else { out.writeInt(0); } - if (wl.mTimerDoze != null) { + if (wl.mTimerDraw != null) { out.writeInt(1); - wl.mTimerDoze.writeSummaryFromParcelLocked(out, NOWREAL_SYS); + wl.mTimerDraw.writeSummaryFromParcelLocked(out, NOWREAL_SYS); } else { out.writeInt(0); }