summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2015-06-12 16:12:07 -0700
committerAdam Lesinski <adamlesinski@google.com>2015-06-12 16:12:07 -0700
commit57123001a416509ea7680501424d2ddf3ae55088 (patch)
tree0f33fe7663766e8d4561cea3da9c15643dc16d38
parent6cb8e30bb7e79cb694bf44d185da201e9deb9363 (diff)
downloadframeworks_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.java9
-rw-r--r--core/java/com/android/internal/os/BatteryStatsHelper.java11
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);
}
}