Loading core/java/com/android/internal/os/PowerStats.java +6 −1 Original line number Diff line number Diff line Loading @@ -580,10 +580,15 @@ public final class PowerStats { } PowerStatsFormatter uidStatsFormatter = descriptor.getUidStatsFormatter(); for (int i = 0; i < uidStats.size(); i++) { String formattedStats = uidStatsFormatter.format(uidStats.valueAt(i)); if (formattedStats.isBlank()) { continue; } pw.print("UID "); pw.print(UserHandle.formatUid(uidStats.keyAt(i))); pw.print(": "); pw.print(uidStatsFormatter.format(uidStats.valueAt(i))); pw.print(formattedStats); pw.println(); } pw.decreaseIndent(); Loading services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +1 −0 Original line number Diff line number Diff line Loading @@ -16356,6 +16356,7 @@ public class BatteryStatsImpl extends BatteryStats { mBluetoothPowerStatsCollector.collectAndDump(pw); mCameraPowerStatsCollector.collectAndDump(pw); mGnssPowerStatsCollector.collectAndDump(pw); mCustomEnergyConsumerPowerStatsCollector.collectAndDump(pw); } private final Runnable mWriteAsyncRunnable = () -> { services/core/java/com/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector.java +9 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.power.stats; import android.hardware.power.stats.EnergyConsumerType; import android.os.BatteryConsumer; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; Loading Loading @@ -65,4 +66,12 @@ public class CustomEnergyConsumerPowerStatsCollector extends PowerStatsCollector } return success; } @Override public void collectAndDump(PrintWriter pw) { ensureInitialized(); for (int i = 0; i < mCollectors.size(); i++) { mCollectors.get(i).collectAndDump(pw); } } } services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java +7 −3 Original line number Diff line number Diff line Loading @@ -176,9 +176,12 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { for (EnergyConsumerAttribution attribution : perUid) { int uid = mUidResolver.mapUid(attribution.uid); long lastEnergy = mLastConsumerEnergyPerUid.get(uid); long deltaEnergy = attribution.energyUWs - lastEnergy; long lastEnergy = mLastConsumerEnergyPerUid.get(uid, ENERGY_UNSPECIFIED); mLastConsumerEnergyPerUid.put(uid, attribution.energyUWs); if (lastEnergy == ENERGY_UNSPECIFIED) { continue; } long deltaEnergy = attribution.energyUWs - lastEnergy; if (deltaEnergy <= 0) { continue; } Loading @@ -189,7 +192,8 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { } mLayout.setUidConsumedEnergy(uidStats, 0, mLayout.getUidConsumedEnergy(uidStats, 0) + deltaEnergy); mLayout.getUidConsumedEnergy(uidStats, 0) + uJtoUc(deltaEnergy, averageVoltage)); } } } Loading services/core/java/com/android/server/power/stats/PowerStatsCollector.java +1 −4 Original line number Diff line number Diff line Loading @@ -196,12 +196,11 @@ public abstract class PowerStatsCollector { } IndentingPrintWriter out = new IndentingPrintWriter(pw); out.print(getClass().getSimpleName()); if (!isEnabled()) { out.print(getClass().getSimpleName()); out.println(": disabled"); return; } out.println(); ArrayList<PowerStats> collected = new ArrayList<>(); Consumer<PowerStats> consumer = collected::add; Loading @@ -215,11 +214,9 @@ public abstract class PowerStatsCollector { removeConsumer(consumer); } out.increaseIndent(); for (PowerStats stats : collected) { stats.dump(out); } out.decreaseIndent(); } private void awaitCompletion() { Loading Loading
core/java/com/android/internal/os/PowerStats.java +6 −1 Original line number Diff line number Diff line Loading @@ -580,10 +580,15 @@ public final class PowerStats { } PowerStatsFormatter uidStatsFormatter = descriptor.getUidStatsFormatter(); for (int i = 0; i < uidStats.size(); i++) { String formattedStats = uidStatsFormatter.format(uidStats.valueAt(i)); if (formattedStats.isBlank()) { continue; } pw.print("UID "); pw.print(UserHandle.formatUid(uidStats.keyAt(i))); pw.print(": "); pw.print(uidStatsFormatter.format(uidStats.valueAt(i))); pw.print(formattedStats); pw.println(); } pw.decreaseIndent(); Loading
services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +1 −0 Original line number Diff line number Diff line Loading @@ -16356,6 +16356,7 @@ public class BatteryStatsImpl extends BatteryStats { mBluetoothPowerStatsCollector.collectAndDump(pw); mCameraPowerStatsCollector.collectAndDump(pw); mGnssPowerStatsCollector.collectAndDump(pw); mCustomEnergyConsumerPowerStatsCollector.collectAndDump(pw); } private final Runnable mWriteAsyncRunnable = () -> {
services/core/java/com/android/server/power/stats/CustomEnergyConsumerPowerStatsCollector.java +9 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.power.stats; import android.hardware.power.stats.EnergyConsumerType; import android.os.BatteryConsumer; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; Loading Loading @@ -65,4 +66,12 @@ public class CustomEnergyConsumerPowerStatsCollector extends PowerStatsCollector } return success; } @Override public void collectAndDump(PrintWriter pw) { ensureInitialized(); for (int i = 0; i < mCollectors.size(); i++) { mCollectors.get(i).collectAndDump(pw); } } }
services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java +7 −3 Original line number Diff line number Diff line Loading @@ -176,9 +176,12 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { for (EnergyConsumerAttribution attribution : perUid) { int uid = mUidResolver.mapUid(attribution.uid); long lastEnergy = mLastConsumerEnergyPerUid.get(uid); long deltaEnergy = attribution.energyUWs - lastEnergy; long lastEnergy = mLastConsumerEnergyPerUid.get(uid, ENERGY_UNSPECIFIED); mLastConsumerEnergyPerUid.put(uid, attribution.energyUWs); if (lastEnergy == ENERGY_UNSPECIFIED) { continue; } long deltaEnergy = attribution.energyUWs - lastEnergy; if (deltaEnergy <= 0) { continue; } Loading @@ -189,7 +192,8 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { } mLayout.setUidConsumedEnergy(uidStats, 0, mLayout.getUidConsumedEnergy(uidStats, 0) + deltaEnergy); mLayout.getUidConsumedEnergy(uidStats, 0) + uJtoUc(deltaEnergy, averageVoltage)); } } } Loading
services/core/java/com/android/server/power/stats/PowerStatsCollector.java +1 −4 Original line number Diff line number Diff line Loading @@ -196,12 +196,11 @@ public abstract class PowerStatsCollector { } IndentingPrintWriter out = new IndentingPrintWriter(pw); out.print(getClass().getSimpleName()); if (!isEnabled()) { out.print(getClass().getSimpleName()); out.println(": disabled"); return; } out.println(); ArrayList<PowerStats> collected = new ArrayList<>(); Consumer<PowerStats> consumer = collected::add; Loading @@ -215,11 +214,9 @@ public abstract class PowerStatsCollector { removeConsumer(consumer); } out.increaseIndent(); for (PowerStats stats : collected) { stats.dump(out); } out.decreaseIndent(); } private void awaitCompletion() { Loading