diff options
| author | Adam Lesinski <adamlesinski@google.com> | 2015-06-12 16:12:07 -0700 |
|---|---|---|
| committer | Adam Lesinski <adamlesinski@google.com> | 2015-06-12 16:12:07 -0700 |
| commit | 57123001a416509ea7680501424d2ddf3ae55088 (patch) | |
| tree | 0f33fe7663766e8d4561cea3da9c15643dc16d38 | |
| parent | 6cb8e30bb7e79cb694bf44d185da201e9deb9363 (diff) | |
| download | frameworks_base-57123001a416509ea7680501424d2ddf3ae55088.zip frameworks_base-57123001a416509ea7680501424d2ddf3ae55088.tar.gz frameworks_base-57123001a416509ea7680501424d2ddf3ae55088.tar.bz2 | |
BatteryStatsHelper: Fix some lost power
Looks like we were losing some power calculations from the CPU side of Bluetooth and
WiFi if there was no controller activity ocurring.
Also add finer breakdown of power to BatteryStats dumpsys for WiFi and Bluetooth.
Change-Id: Ic3ce3e4e3b854f17f9a32fd4bdc47a8ea74ca439
| -rw-r--r-- | core/java/android/os/BatteryStats.java | 9 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsHelper.java | 11 |
2 files changed, 13 insertions, 7 deletions
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index f76192e..d165240 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -3541,8 +3541,15 @@ public abstract class BatteryStats implements Parcelable { } printmAh(pw, bs.totalPowerMah); - if (bs.drainType == BatterySipper.DrainType.APP) { + if (bs.usagePowerMah != bs.totalPowerMah) { + // If the usage (generic power) isn't the whole amount, we list out + // what components are involved in the calculation. + pw.print(" ("); + if (bs.usagePowerMah != 0) { + pw.print(" usage="); + printmAh(pw, bs.usagePowerMah); + } if (bs.cpuPowerMah != 0) { pw.print(" cpu="); printmAh(pw, bs.cpuPowerMah); diff --git a/core/java/com/android/internal/os/BatteryStatsHelper.java b/core/java/com/android/internal/os/BatteryStatsHelper.java index 4290e22..6a85afb 100644 --- a/core/java/com/android/internal/os/BatteryStatsHelper.java +++ b/core/java/com/android/internal/os/BatteryStatsHelper.java @@ -587,6 +587,7 @@ public final class BatteryStatsHelper { bs.add(wbs); } bs.computeMobilemspp(); + bs.sumPower(); } private void addIdleUsage() { @@ -612,9 +613,8 @@ public final class BatteryStatsHelper { private void addWiFiUsage() { BatterySipper bs = new BatterySipper(DrainType.WIFI, null, 0); mWifiPowerCalculator.calculateRemaining(bs, mStats, mRawRealtime, mRawUptime, mStatsType); - bs.sumPower(); - if (bs.totalPowerMah > 0 || !mWifiSippers.isEmpty()) { - aggregateSippers(bs, mWifiSippers, "WIFI"); + aggregateSippers(bs, mWifiSippers, "WIFI"); + if (bs.totalPowerMah > 0) { mUsageList.add(bs); } } @@ -627,8 +627,8 @@ public final class BatteryStatsHelper { BatterySipper bs = new BatterySipper(BatterySipper.DrainType.BLUETOOTH, null, 0); mBluetoothPowerCalculator.calculateRemaining(bs, mStats, mRawRealtime, mRawUptime, mStatsType); - if (bs.sumPower() > 0) { - aggregateSippers(bs, mBluetoothSippers, "Bluetooth"); + aggregateSippers(bs, mBluetoothSippers, "Bluetooth"); + if (bs.totalPowerMah > 0) { mUsageList.add(bs); } } @@ -639,7 +639,6 @@ public final class BatteryStatsHelper { BatterySipper bs = new BatterySipper(DrainType.USER, null, 0); bs.userId = userId; aggregateSippers(bs, mUserSippers.valueAt(i), "User"); - bs.sumPower(); mUsageList.add(bs); } } |
