diff options
| author | Adam Lesinski <adamlesinski@google.com> | 2016-06-10 02:21:54 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-06-10 02:21:54 +0000 |
| commit | d499d79b07a7f15df15d843242563e4282ecdd83 (patch) | |
| tree | 8d8460719eada2328465f935c0519b66a37ab4f5 /core/java/android/os | |
| parent | 69a983dfec7140ee6aad5e2ffddc55fe3c5f170d (diff) | |
| parent | 094c40b2cc70fefb29771fb90d7ea7437905b3a5 (diff) | |
Merge \"BatteryStats: Record fine grained battery discharge\" into nyc-dev
am: 094c40b2cc
Change-Id: Ie85fcfc2fa7aec5e7c15f57d605840c563c0e993
Diffstat (limited to 'core/java/android/os')
| -rw-r--r-- | core/java/android/os/BatteryStats.java | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index a7a2c2d471ba..26461f684998 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -2371,6 +2371,20 @@ public abstract class BatteryStats implements Parcelable { }; /** + * Return the counter keeping track of the amount of battery discharge while the screen was off, + * measured in micro-Ampere-hours. This will be non-zero only if the device's battery has + * a coulomb counter. + */ + public abstract LongCounter getDischargeScreenOffCoulombCounter(); + + /** + * Return the counter keeping track of the amount of battery discharge measured in + * micro-Ampere-hours. This will be non-zero only if the device's battery has + * a coulomb counter. + */ + public abstract LongCounter getDischargeCoulombCounter(); + + /** * Return the array of discharge step durations. */ public abstract LevelStepTracker getDischargeLevelStepTracker(); @@ -2805,6 +2819,9 @@ public abstract class BatteryStats implements Parcelable { rawRealtime, which); final int connChanges = getNumConnectivityChange(which); final long phoneOnTime = getPhoneOnTime(rawRealtime, which); + final long dischargeCount = getDischargeCoulombCounter().getCountLocked(which); + final long dischargeScreenOffCount = getDischargeScreenOffCoulombCounter() + .getCountLocked(which); final StringBuilder sb = new StringBuilder(128); @@ -2819,7 +2836,8 @@ public abstract class BatteryStats implements Parcelable { whichBatteryRealtime / 1000, whichBatteryUptime / 1000, totalRealtime / 1000, totalUptime / 1000, getStartClockTime(), - whichBatteryScreenOffRealtime / 1000, whichBatteryScreenOffUptime / 1000); + whichBatteryScreenOffRealtime / 1000, whichBatteryScreenOffUptime / 1000, + dischargeCount / 1000, dischargeScreenOffCount / 1000); // Calculate wakelock times across all uids. long fullWakeLockTimeTotal = 0; @@ -3371,6 +3389,39 @@ public abstract class BatteryStats implements Parcelable { formatTimeMs(sb, chargeTimeRemaining / 1000); pw.println(sb.toString()); } + + final LongCounter dischargeCounter = getDischargeCoulombCounter(); + final long dischargeCount = dischargeCounter.getCountLocked(which); + if (dischargeCount >= 0) { + sb.setLength(0); + sb.append(prefix); + sb.append(" Discharge: "); + sb.append(BatteryStatsHelper.makemAh(dischargeCount / 1000.0)); + sb.append(" mAh"); + pw.println(sb.toString()); + } + + final LongCounter dischargeScreenOffCounter = getDischargeScreenOffCoulombCounter(); + final long dischargeScreenOffCount = dischargeScreenOffCounter.getCountLocked(which); + if (dischargeScreenOffCount >= 0) { + sb.setLength(0); + sb.append(prefix); + sb.append(" Screen off discharge: "); + sb.append(BatteryStatsHelper.makemAh(dischargeScreenOffCount / 1000.0)); + sb.append(" mAh"); + pw.println(sb.toString()); + } + + final long dischargeScreenOnCount = dischargeCount - dischargeScreenOffCount; + if (dischargeScreenOnCount >= 0) { + sb.setLength(0); + sb.append(prefix); + sb.append(" Screen on discharge: "); + sb.append(BatteryStatsHelper.makemAh(dischargeScreenOnCount / 1000.0)); + sb.append(" mAh"); + pw.println(sb.toString()); + } + pw.print(" Start clock time: "); pw.println(DateFormat.format("yyyy-MM-dd-HH-mm-ss", getStartClockTime()).toString()); |
