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

Commit 8d9d99a8 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Android (Google) Code Review
Browse files

Merge "Improve dump of PowerStats samples" into main

parents 6284eb54 0766a153
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