Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0766a153 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov
Browse files

Improve dump of PowerStats samples

Bug: 333941740
Test: adb shell dumpsys batterystats --sample
Flag: com.android.server.power.optimization.streamlined_misc_battery_stats
Change-Id: I88ed794cf2bd100df1ae2c5bd5c3014e4205784e
parent 04606353
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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();
+1 −0
Original line number Diff line number Diff line
@@ -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 = () -> {
+9 −0
Original line number Diff line number Diff line
@@ -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;

@@ -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);
        }
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -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;
                    }
@@ -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));
                }
            }
        }
+1 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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