diff options
| author | Dmitri Plotnikov <dplotnikov@google.com> | 2021-04-14 19:34:32 -0700 |
|---|---|---|
| committer | Dmitri Plotnikov <dplotnikov@google.com> | 2021-05-10 15:20:18 -0700 |
| commit | e43992bbdb91098aac3ff2fc678f2d58558dcb98 (patch) | |
| tree | e01eeea847d7a300c9d8188f72dbcd81eb161dde /core/java/android/os/BatteryStats.java | |
| parent | 1ebf0cf0069daf06115e7aec62e6d1d95f7e2c90 (diff) | |
Convert BatteryStats.dumpLocked from BatteryStatsHelper to BatteryUsageStats
Bug: 162380414
Test: atest FrameworksCoreTests:BatteryUsageStatsTest
Change-Id: Icb508c60e037ee983c0ebde5905ec0a08fe648c3
Diffstat (limited to 'core/java/android/os/BatteryStats.java')
| -rw-r--r-- | core/java/android/os/BatteryStats.java | 154 |
1 files changed, 10 insertions, 144 deletions
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index eec6810fa8bc..c97d1f8bcf02 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -51,6 +51,7 @@ import android.view.Display; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BatterySipper; import com.android.internal.os.BatteryStatsHelper; +import com.android.internal.os.BatteryUsageStatsProvider; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -5299,154 +5300,19 @@ public abstract class BatteryStats implements Parcelable { pw.println(getDischargeAmountScreenDozeSinceCharge()); pw.println(); + final BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(context, this); + final BatteryUsageStats stats = provider.getBatteryUsageStats( + new BatteryUsageStatsQuery.Builder() + .setMaxStatsAgeMs(0) + .includePowerModels() + .build()); + stats.dump(pw, prefix); + final BatteryStatsHelper helper = new BatteryStatsHelper(context, false, wifiOnly); helper.create(this); helper.refreshStats(which, UserHandle.USER_ALL); - List<BatterySipper> sippers = helper.getUsageList(); - if (sippers != null && sippers.size() > 0) { - pw.print(prefix); pw.println(" Estimated power use (mAh):"); - pw.print(prefix); pw.print(" Capacity: "); - printmAh(pw, helper.getPowerProfile().getBatteryCapacity()); - pw.print(", Computed drain: "); printmAh(pw, helper.getComputedPower()); - pw.print(", actual drain: "); printmAh(pw, helper.getMinDrainedPower()); - if (helper.getMinDrainedPower() != helper.getMaxDrainedPower()) { - pw.print("-"); printmAh(pw, helper.getMaxDrainedPower()); - } - pw.println(); - for (int i=0; i<sippers.size(); i++) { - final BatterySipper bs = sippers.get(i); - pw.print(prefix); - switch (bs.drainType) { - case AMBIENT_DISPLAY: - pw.print(" Ambient display: "); - break; - case IDLE: - pw.print(" Idle: "); - break; - case CELL: - pw.print(" Cell standby: "); - break; - case PHONE: - pw.print(" Phone calls: "); - break; - case WIFI: - pw.print(" Wifi: "); - break; - case BLUETOOTH: - pw.print(" Bluetooth: "); - break; - case SCREEN: - pw.print(" Screen: "); - break; - case FLASHLIGHT: - pw.print(" Flashlight: "); - break; - case APP: - pw.print(" Uid "); - UserHandle.formatUid(pw, bs.uidObj.getUid()); - pw.print(": "); - break; - case USER: - pw.print(" User "); pw.print(bs.userId); - pw.print(": "); - break; - case UNACCOUNTED: - pw.print(" Unaccounted: "); - break; - case OVERCOUNTED: - pw.print(" Over-counted: "); - break; - case CAMERA: - pw.print(" Camera: "); - break; - default: - pw.print(" ???: "); - break; - } - printmAh(pw, bs.totalPowerMah); - - 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); - } - if (bs.wakeLockPowerMah != 0) { - pw.print(" wake="); - printmAh(pw, bs.wakeLockPowerMah); - } - if (bs.mobileRadioPowerMah != 0) { - pw.print(" radio="); - printmAh(pw, bs.mobileRadioPowerMah); - } - if (bs.wifiPowerMah != 0) { - pw.print(" wifi="); - printmAh(pw, bs.wifiPowerMah); - } - if (bs.bluetoothPowerMah != 0) { - pw.print(" bt="); - printmAh(pw, bs.bluetoothPowerMah); - } - if (bs.gpsPowerMah != 0) { - pw.print(" gps="); - printmAh(pw, bs.gpsPowerMah); - } - if (bs.sensorPowerMah != 0) { - pw.print(" sensor="); - printmAh(pw, bs.sensorPowerMah); - } - if (bs.cameraPowerMah != 0) { - pw.print(" camera="); - printmAh(pw, bs.cameraPowerMah); - } - if (bs.flashlightPowerMah != 0) { - pw.print(" flash="); - printmAh(pw, bs.flashlightPowerMah); - } - if (bs.customMeasuredPowerMah != null) { - for (int idx = 0; idx < bs.customMeasuredPowerMah.length; idx++) { - final double customPowerMah = bs.customMeasuredPowerMah[idx]; - if (customPowerMah != 0) { - pw.print(" custom[" + idx + "]="); - printmAh(pw, customPowerMah); - } - } - } - pw.print(" )"); - } - - // If there is additional smearing information, include it. - if (bs.totalSmearedPowerMah != bs.totalPowerMah) { - pw.print(" Including smearing: "); - printmAh(pw, bs.totalSmearedPowerMah); - pw.print(" ("); - if (bs.screenPowerMah != 0) { - pw.print(" screen="); - printmAh(pw, bs.screenPowerMah); - } - if (bs.proportionalSmearMah != 0) { - pw.print(" proportional="); - printmAh(pw, bs.proportionalSmearMah); - } - pw.print(" )"); - } - if (bs.shouldHide) { - pw.print(" Excluded from smearing"); - } - - pw.println(); - } - pw.println(); - } - sippers = helper.getMobilemsppList(); + final List<BatterySipper> sippers = helper.getMobilemsppList(); if (sippers != null && sippers.size() > 0) { pw.print(prefix); pw.println(" Per-app mobile ms per packet:"); long totalTime = 0; |
