Loading core/java/android/os/BatteryUsageStatsQuery.java +25 −2 Original line number Diff line number Diff line Loading @@ -75,8 +75,9 @@ public final class BatteryUsageStatsQuery implements Parcelable { @NonNull private final int[] mUserIds; private final long mMaxStatsAgeMs; private long mFromTimestamp; private long mToTimestamp; private final long mFromTimestamp; private final long mToTimestamp; private final @BatteryConsumer.PowerComponent int[] mPowerComponents; private BatteryUsageStatsQuery(@NonNull Builder builder) { mFlags = builder.mFlags; Loading @@ -85,6 +86,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { mMaxStatsAgeMs = builder.mMaxStatsAgeMs; mFromTimestamp = builder.mFromTimestamp; mToTimestamp = builder.mToTimestamp; mPowerComponents = builder.mPowerComponents; } @BatteryUsageStatsFlags Loading Loading @@ -115,6 +117,14 @@ public final class BatteryUsageStatsQuery implements Parcelable { return (mFlags & FLAG_BATTERY_USAGE_STATS_INCLUDE_PROCESS_STATE_DATA) != 0; } /** * Returns the power components that should be estimated or null if all power components * are being requested. */ public int[] getPowerComponents() { return mPowerComponents; } /** * Returns the client's tolerance for stale battery stats. The data is allowed to be up to * this many milliseconds out-of-date. Loading Loading @@ -147,6 +157,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { mMaxStatsAgeMs = in.readLong(); mFromTimestamp = in.readLong(); mToTimestamp = in.readLong(); mPowerComponents = in.createIntArray(); } @Override Loading @@ -157,6 +168,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { dest.writeLong(mMaxStatsAgeMs); dest.writeLong(mFromTimestamp); dest.writeLong(mToTimestamp); dest.writeIntArray(mPowerComponents); } @Override Loading Loading @@ -187,6 +199,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { private long mMaxStatsAgeMs = DEFAULT_MAX_STATS_AGE_MS; private long mFromTimestamp; private long mToTimestamp; private @BatteryConsumer.PowerComponent int[] mPowerComponents; /** * Builds a read-only BatteryUsageStatsQuery object. Loading Loading @@ -247,6 +260,16 @@ public final class BatteryUsageStatsQuery implements Parcelable { return this; } /** * Requests to return only statistics for the specified power components. The default * is all power components. */ public Builder includePowerComponents( @BatteryConsumer.PowerComponent int[] powerComponents) { mPowerComponents = powerComponents; return this; } /** * Requests to aggregate stored snapshots between the two supplied timestamps * @param fromTimestamp Exclusive starting timestamp, as per System.currentTimeMillis() Loading core/java/com/android/internal/os/AmbientDisplayPowerCalculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,11 @@ import java.util.List; public class AmbientDisplayPowerCalculator extends PowerCalculator { private final UsageBasedPowerEstimator[] mPowerEstimators; @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { return powerComponent == BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY; } public AmbientDisplayPowerCalculator(PowerProfile powerProfile) { final int numDisplays = powerProfile.getNumDisplays(); mPowerEstimators = new UsageBasedPowerEstimator[numDisplays]; Loading core/java/com/android/internal/os/AudioPowerCalculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,11 @@ public class AudioPowerCalculator extends PowerCalculator { powerProfile.getAveragePower(PowerProfile.POWER_AUDIO)); } @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { return powerComponent == BatteryConsumer.POWER_COMPONENT_AUDIO; } @Override public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats, long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) { Loading core/java/com/android/internal/os/BatteryChargeCalculator.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.os; import android.os.BatteryConsumer; import android.os.BatteryStats; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; Loading @@ -29,6 +30,12 @@ import java.util.List; */ public class BatteryChargeCalculator extends PowerCalculator { @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { // Always apply this power calculator, no matter what power components were requested return true; } @Override public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats, long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) { Loading core/java/com/android/internal/os/BatteryUsageStatsProvider.java +13 −0 Original line number Diff line number Diff line Loading @@ -181,9 +181,22 @@ public class BatteryUsageStatsProvider { getProcessForegroundTimeMs(uid, realtimeUs)); } final int[] powerComponents = query.getPowerComponents(); final List<PowerCalculator> powerCalculators = getPowerCalculators(); for (int i = 0, count = powerCalculators.size(); i < count; i++) { PowerCalculator powerCalculator = powerCalculators.get(i); if (powerComponents != null) { boolean include = false; for (int j = 0; j < powerComponents.length; j++) { if (powerCalculator.isPowerComponentSupported(powerComponents[j])) { include = true; break; } } if (!include) { continue; } } powerCalculator.calculate(batteryUsageStatsBuilder, mStats, realtimeUs, uptimeUs, query); } Loading Loading
core/java/android/os/BatteryUsageStatsQuery.java +25 −2 Original line number Diff line number Diff line Loading @@ -75,8 +75,9 @@ public final class BatteryUsageStatsQuery implements Parcelable { @NonNull private final int[] mUserIds; private final long mMaxStatsAgeMs; private long mFromTimestamp; private long mToTimestamp; private final long mFromTimestamp; private final long mToTimestamp; private final @BatteryConsumer.PowerComponent int[] mPowerComponents; private BatteryUsageStatsQuery(@NonNull Builder builder) { mFlags = builder.mFlags; Loading @@ -85,6 +86,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { mMaxStatsAgeMs = builder.mMaxStatsAgeMs; mFromTimestamp = builder.mFromTimestamp; mToTimestamp = builder.mToTimestamp; mPowerComponents = builder.mPowerComponents; } @BatteryUsageStatsFlags Loading Loading @@ -115,6 +117,14 @@ public final class BatteryUsageStatsQuery implements Parcelable { return (mFlags & FLAG_BATTERY_USAGE_STATS_INCLUDE_PROCESS_STATE_DATA) != 0; } /** * Returns the power components that should be estimated or null if all power components * are being requested. */ public int[] getPowerComponents() { return mPowerComponents; } /** * Returns the client's tolerance for stale battery stats. The data is allowed to be up to * this many milliseconds out-of-date. Loading Loading @@ -147,6 +157,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { mMaxStatsAgeMs = in.readLong(); mFromTimestamp = in.readLong(); mToTimestamp = in.readLong(); mPowerComponents = in.createIntArray(); } @Override Loading @@ -157,6 +168,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { dest.writeLong(mMaxStatsAgeMs); dest.writeLong(mFromTimestamp); dest.writeLong(mToTimestamp); dest.writeIntArray(mPowerComponents); } @Override Loading Loading @@ -187,6 +199,7 @@ public final class BatteryUsageStatsQuery implements Parcelable { private long mMaxStatsAgeMs = DEFAULT_MAX_STATS_AGE_MS; private long mFromTimestamp; private long mToTimestamp; private @BatteryConsumer.PowerComponent int[] mPowerComponents; /** * Builds a read-only BatteryUsageStatsQuery object. Loading Loading @@ -247,6 +260,16 @@ public final class BatteryUsageStatsQuery implements Parcelable { return this; } /** * Requests to return only statistics for the specified power components. The default * is all power components. */ public Builder includePowerComponents( @BatteryConsumer.PowerComponent int[] powerComponents) { mPowerComponents = powerComponents; return this; } /** * Requests to aggregate stored snapshots between the two supplied timestamps * @param fromTimestamp Exclusive starting timestamp, as per System.currentTimeMillis() Loading
core/java/com/android/internal/os/AmbientDisplayPowerCalculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,11 @@ import java.util.List; public class AmbientDisplayPowerCalculator extends PowerCalculator { private final UsageBasedPowerEstimator[] mPowerEstimators; @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { return powerComponent == BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY; } public AmbientDisplayPowerCalculator(PowerProfile powerProfile) { final int numDisplays = powerProfile.getNumDisplays(); mPowerEstimators = new UsageBasedPowerEstimator[numDisplays]; Loading
core/java/com/android/internal/os/AudioPowerCalculator.java +5 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,11 @@ public class AudioPowerCalculator extends PowerCalculator { powerProfile.getAveragePower(PowerProfile.POWER_AUDIO)); } @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { return powerComponent == BatteryConsumer.POWER_COMPONENT_AUDIO; } @Override public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats, long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) { Loading
core/java/com/android/internal/os/BatteryChargeCalculator.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.os; import android.os.BatteryConsumer; import android.os.BatteryStats; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; Loading @@ -29,6 +30,12 @@ import java.util.List; */ public class BatteryChargeCalculator extends PowerCalculator { @Override public boolean isPowerComponentSupported(@BatteryConsumer.PowerComponent int powerComponent) { // Always apply this power calculator, no matter what power components were requested return true; } @Override public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats, long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) { Loading
core/java/com/android/internal/os/BatteryUsageStatsProvider.java +13 −0 Original line number Diff line number Diff line Loading @@ -181,9 +181,22 @@ public class BatteryUsageStatsProvider { getProcessForegroundTimeMs(uid, realtimeUs)); } final int[] powerComponents = query.getPowerComponents(); final List<PowerCalculator> powerCalculators = getPowerCalculators(); for (int i = 0, count = powerCalculators.size(); i < count; i++) { PowerCalculator powerCalculator = powerCalculators.get(i); if (powerComponents != null) { boolean include = false; for (int j = 0; j < powerComponents.length; j++) { if (powerCalculator.isPowerComponentSupported(powerComponents[j])) { include = true; break; } } if (!include) { continue; } } powerCalculator.calculate(batteryUsageStatsBuilder, mStats, realtimeUs, uptimeUs, query); } Loading