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

Commit 9df7512c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Demonstrate per Uid screen energy measurement in BatteryStatsViewer"

parents f7490769 4546304f
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -985,6 +985,15 @@ public abstract class BatteryStats implements Parcelable {
         */
        public abstract void getDeferredJobsLineLocked(StringBuilder sb, int which);

        /**
         * Returns the measured energy in microjoules that the display consumed while the screen
         * was on and uid active.
         * Will return {@link #ENERGY_DATA_UNAVAILABLE} if data is unavailable
         *
         * {@hide}
         */
        public abstract long getScreenOnEnergy();

        public static abstract class Sensor {

            @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+9 −0
Original line number Diff line number Diff line
@@ -8648,6 +8648,15 @@ public class BatteryStatsImpl extends BatteryStats {
            }
        }
        @Override
        public long getScreenOnEnergy() {
            if (mUidMeasuredEnergyStats == null) {
                return ENERGY_DATA_UNAVAILABLE;
            }
            return mUidMeasuredEnergyStats.getAccumulatedBucketEnergy(
                    MeasuredEnergyStats.ENERGY_BUCKET_SCREEN_ON);
        }
        void initNetworkActivityLocked() {
            detachIfNotNull(mNetworkByteActivityCounters);
            mNetworkByteActivityCounters = new LongSamplingCounter[NUM_NETWORK_ACTIVITY_TYPES];
+7 −5
Original line number Diff line number Diff line
@@ -171,6 +171,7 @@ public class BatteryConsumerData {
        mBatteryConsumerInfo = BatteryConsumerInfoHelper.makeBatteryConsumerInfo(
                context.getPackageManager(), requestedBatterySipper);
        long totalScreenMeasuredEnergyUJ = batteryStats.getScreenOnEnergy();
        long uidScreenMeasuredEnergyUJ = requestedBatterySipper.uidObj.getScreenOnEnergy();

        addEntry("Total power", EntryType.POWER,
                requestedBatterySipper.totalSmearedPowerMah, totalSmearedPowerMah);
@@ -180,11 +181,12 @@ public class BatteryConsumerData {
                requestedBatterySipper.totalSmearedPowerMah, totalPowerExcludeSystemMah);
        addEntry("Screen, smeared", EntryType.POWER,
                requestedBatterySipper.screenPowerMah, totalScreenPower);
        if (totalScreenMeasuredEnergyUJ != BatteryStats.ENERGY_DATA_UNAVAILABLE) {
            final double measuredCharge = UJ_2_MAH * totalScreenMeasuredEnergyUJ;
            final double ratio = measuredCharge / totalScreenPower;
            addEntry("Screen, smeared (PowerStatsHal adjusted)", EntryType.POWER,
                    requestedBatterySipper.screenPowerMah * ratio, measuredCharge);
        if (uidScreenMeasuredEnergyUJ != BatteryStats.ENERGY_DATA_UNAVAILABLE
                && totalScreenMeasuredEnergyUJ != BatteryStats.ENERGY_DATA_UNAVAILABLE) {
            final double measuredCharge = UJ_2_MAH * uidScreenMeasuredEnergyUJ;
            final double totalMeasuredCharge = UJ_2_MAH * totalScreenMeasuredEnergyUJ;
            addEntry("Screen, measured", EntryType.POWER,
                    measuredCharge, totalMeasuredCharge);
        }
        addEntry("Other, smeared", EntryType.POWER,
                requestedBatterySipper.proportionalSmearMah, totalProportionalSmearMah);