diff --git a/core/java/android/os/BatteryConsumer.java b/core/java/android/os/BatteryConsumer.java index 4cd62eb859f81..f2b466d7fa5da 100644 --- a/core/java/android/os/BatteryConsumer.java +++ b/core/java/android/os/BatteryConsumer.java @@ -69,17 +69,6 @@ public abstract class BatteryConsumer { public static final int FIRST_CUSTOM_POWER_COMPONENT_ID = 1000; public static final int LAST_CUSTOM_POWER_COMPONENT_ID = 9999; - /** - * Modeled power components are used for testing only. They are returned if the - * {@link BatteryUsageStatsQuery#FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED} is set. - * The modeled power components are retrieved with {@link #getConsumedPowerForCustomComponent}. - * The ID of a modeled power component is calculated as - * (FIRST_MODELED_POWER_COMPONENT_ID + powerComponentId), e.g. - * FIRST_MODELED_POWER_COMPONENT_ID + POWER_COMPONENT_CPU. - */ - public static final int FIRST_MODELED_POWER_COMPONENT_ID = 10000; - public static final int LAST_MODELED_POWER_COMPONENT_ID = 19999; - /** * Time usage component, describing the particular part of the system * that was used for the corresponding amount of time. @@ -182,10 +171,9 @@ public abstract class BatteryConsumer { protected abstract static class BaseBuilder> { final PowerComponents.Builder mPowerComponentsBuilder; - public BaseBuilder(int customPowerComponentCount, int customTimeComponentCount, - boolean includeModeledComponents) { + public BaseBuilder(int customPowerComponentCount, int customTimeComponentCount) { mPowerComponentsBuilder = new PowerComponents.Builder(customPowerComponentCount, - customTimeComponentCount, includeModeledComponents); + customTimeComponentCount); } /** diff --git a/core/java/android/os/BatteryStatsManager.java b/core/java/android/os/BatteryStatsManager.java index f21a8125f0a5b..04e529e80bffd 100644 --- a/core/java/android/os/BatteryStatsManager.java +++ b/core/java/android/os/BatteryStatsManager.java @@ -32,6 +32,7 @@ import com.android.internal.app.IBatteryStats; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; /** * This class provides an API surface for internal system components to report events that are @@ -183,8 +184,20 @@ public final class BatteryStatsManager { @RequiresPermission(android.Manifest.permission.BATTERY_STATS) @NonNull public BatteryUsageStats getBatteryUsageStats(BatteryUsageStatsQuery query) { + return getBatteryUsageStats(List.of(query)).get(0); + } + + /** + * Returns BatteryUsageStats, which contains power attribution data on a per-subsystem + * and per-UID basis. + * + * @hide + */ + @RequiresPermission(android.Manifest.permission.BATTERY_STATS) + @NonNull + public List getBatteryUsageStats(List queries) { try { - return mBatteryStats.getBatteryUsageStats(query); + return mBatteryStats.getBatteryUsageStats(queries); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java index a6df87d54dc00..af8e8de85d9f1 100644 --- a/core/java/android/os/BatteryUsageStats.java +++ b/core/java/android/os/BatteryUsageStats.java @@ -114,7 +114,6 @@ public final class BatteryUsageStats implements Parcelable { public static final class Builder { private final int mCustomPowerComponentCount; private final int mCustomTimeComponentCount; - private final boolean mIncludeModeledComponents; private double mConsumedPower; private int mDischargePercentage; private final SparseArray mUidBatteryConsumerBuilders = @@ -122,11 +121,9 @@ public final class BatteryUsageStats implements Parcelable { private final SparseArray mSystemBatteryConsumerBuilders = new SparseArray<>(); - public Builder(int customPowerComponentCount, int customTimeComponentCount, - boolean includeModeledComponents) { + public Builder(int customPowerComponentCount, int customTimeComponentCount) { mCustomPowerComponentCount = customPowerComponentCount; mCustomTimeComponentCount = customTimeComponentCount; - mIncludeModeledComponents = includeModeledComponents; } /** @@ -169,7 +166,7 @@ public final class BatteryUsageStats implements Parcelable { UidBatteryConsumer.Builder builder = mUidBatteryConsumerBuilders.get(uid); if (builder == null) { builder = new UidBatteryConsumer.Builder(mCustomPowerComponentCount, - mCustomTimeComponentCount, mIncludeModeledComponents, batteryStatsUid); + mCustomTimeComponentCount, batteryStatsUid); mUidBatteryConsumerBuilders.put(uid, builder); } return builder; @@ -185,7 +182,7 @@ public final class BatteryUsageStats implements Parcelable { SystemBatteryConsumer.Builder builder = mSystemBatteryConsumerBuilders.get(drainType); if (builder == null) { builder = new SystemBatteryConsumer.Builder(mCustomPowerComponentCount, - mCustomTimeComponentCount, mIncludeModeledComponents, drainType); + mCustomTimeComponentCount, drainType); mSystemBatteryConsumerBuilders.put(drainType, builder); } return builder; diff --git a/core/java/android/os/BatteryUsageStatsQuery.java b/core/java/android/os/BatteryUsageStatsQuery.java index 9a00679025140..48e7389e5ff28 100644 --- a/core/java/android/os/BatteryUsageStatsQuery.java +++ b/core/java/android/os/BatteryUsageStatsQuery.java @@ -38,18 +38,19 @@ public final class BatteryUsageStatsQuery implements Parcelable { * @hide */ @IntDef(flag = true, prefix = { "FLAG_BATTERY_USAGE_STATS_" }, value = { - FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED, + FLAG_BATTERY_USAGE_STATS_POWER_PROFILE_MODEL, }) @Retention(RetentionPolicy.SOURCE) public @interface BatteryUsageStatsFlags {} /** - * Indicates that modeled battery usage stats should be returned along with - * measured ones. + * Indicates that power estimations should be based on the usage time and + * average power constants provided in the PowerProfile, even if on-device power monitoring + * is available. * * @hide */ - public static final int FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED = 1; + public static final int FLAG_BATTERY_USAGE_STATS_POWER_PROFILE_MODEL = 1; private final int mFlags; @@ -112,11 +113,13 @@ public final class BatteryUsageStatsQuery implements Parcelable { } /** - * Requests to include modeled battery usage stats along with measured ones. + * Requests to return modeled battery usage stats only, even if on-device + * power monitoring data is available. + * * Should only be used for testing and debugging. */ - public Builder includeModeled() { - mFlags |= BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED; + public Builder powerProfileModeledOnly() { + mFlags |= BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_POWER_PROFILE_MODEL; return this; } } diff --git a/core/java/android/os/PowerComponents.java b/core/java/android/os/PowerComponents.java index f681c4ff0ce40..1337d558e439f 100644 --- a/core/java/android/os/PowerComponents.java +++ b/core/java/android/os/PowerComponents.java @@ -33,11 +33,9 @@ class PowerComponents { private final double[] mPowerComponents; private final long[] mTimeComponents; private final int mCustomPowerComponentCount; - private final int mModeledPowerComponentOffset; PowerComponents(@NonNull Builder builder) { mCustomPowerComponentCount = builder.mCustomPowerComponentCount; - mModeledPowerComponentOffset = builder.mModeledPowerComponentOffset; mPowerComponents = builder.mPowerComponents; mTimeComponents = builder.mTimeComponents; double totalPower = 0; @@ -50,9 +48,6 @@ class PowerComponents { PowerComponents(@NonNull Parcel source) { mTotalPowerConsumed = source.readDouble(); mCustomPowerComponentCount = source.readInt(); - mModeledPowerComponentOffset = - BatteryConsumer.POWER_COMPONENT_COUNT + mCustomPowerComponentCount - - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID; mPowerComponents = source.createDoubleArray(); mTimeComponents = source.createLongArray(); } @@ -106,14 +101,6 @@ class PowerComponents { throw new IllegalArgumentException( "Unsupported custom power component ID: " + componentId); } - } else if (componentId >= BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - && componentId < BatteryConsumer.LAST_MODELED_POWER_COMPONENT_ID) { - try { - return mPowerComponents[mModeledPowerComponentOffset + componentId]; - } catch (ArrayIndexOutOfBoundsException e) { - throw new IllegalArgumentException( - "Unsupported modeled power component ID: " + componentId); - } } else { throw new IllegalArgumentException( "Unsupported custom power component ID: " + componentId); @@ -165,20 +152,12 @@ class PowerComponents { private final double[] mPowerComponents; private final int mCustomPowerComponentCount; private final long[] mTimeComponents; - private final int mModeledPowerComponentOffset; - Builder(int customPowerComponentCount, int customTimeComponentCount, - boolean includeModeledPowerComponents) { + Builder(int customPowerComponentCount, int customTimeComponentCount) { mCustomPowerComponentCount = customPowerComponentCount; int powerComponentCount = BatteryConsumer.POWER_COMPONENT_COUNT + customPowerComponentCount; - if (includeModeledPowerComponents) { - powerComponentCount += BatteryConsumer.POWER_COMPONENT_COUNT; - } mPowerComponents = new double[powerComponentCount]; - mModeledPowerComponentOffset = - BatteryConsumer.POWER_COMPONENT_COUNT + mCustomPowerComponentCount - - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID; mTimeComponents = new long[BatteryConsumer.TIME_COMPONENT_COUNT + customTimeComponentCount]; } @@ -222,14 +201,6 @@ class PowerComponents { throw new IllegalArgumentException( "Unsupported custom power component ID: " + componentId); } - } else if (componentId >= BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - && componentId < BatteryConsumer.LAST_MODELED_POWER_COMPONENT_ID) { - try { - mPowerComponents[mModeledPowerComponentOffset + componentId] = componentPower; - } catch (ArrayIndexOutOfBoundsException e) { - throw new IllegalArgumentException( - "Unsupported modeled power component ID: " + componentId); - } } else { throw new IllegalArgumentException( "Unsupported custom power component ID: " + componentId); diff --git a/core/java/android/os/SystemBatteryConsumer.java b/core/java/android/os/SystemBatteryConsumer.java index 49bf08461016d..fc4aa93b97c76 100644 --- a/core/java/android/os/SystemBatteryConsumer.java +++ b/core/java/android/os/SystemBatteryConsumer.java @@ -123,8 +123,8 @@ public class SystemBatteryConsumer extends BatteryConsumer implements Parcelable private List mUidBatteryConsumers; Builder(int customPowerComponentCount, int customTimeComponentCount, - boolean includeModeledComponents, @DrainType int drainType) { - super(customPowerComponentCount, customTimeComponentCount, includeModeledComponents); + @DrainType int drainType) { + super(customPowerComponentCount, customTimeComponentCount); mDrainType = drainType; } diff --git a/core/java/android/os/UidBatteryConsumer.java b/core/java/android/os/UidBatteryConsumer.java index 31617668be08f..3ffaa9e4b1f0d 100644 --- a/core/java/android/os/UidBatteryConsumer.java +++ b/core/java/android/os/UidBatteryConsumer.java @@ -98,8 +98,8 @@ public final class UidBatteryConsumer extends BatteryConsumer implements Parcela private boolean mSystemComponent; public Builder(int customPowerComponentCount, int customTimeComponentCount, - boolean includeModeledComponents, BatteryStats.Uid batteryStatsUid) { - super(customPowerComponentCount, customTimeComponentCount, includeModeledComponents); + BatteryStats.Uid batteryStatsUid) { + super(customPowerComponentCount, customTimeComponentCount); mBatteryStatsUid = batteryStatsUid; mUid = batteryStatsUid.getUid(); } diff --git a/core/java/com/android/internal/app/IBatteryStats.aidl b/core/java/com/android/internal/app/IBatteryStats.aidl index 55f8c400022f5..c1952c7d52cf4 100644 --- a/core/java/com/android/internal/app/IBatteryStats.aidl +++ b/core/java/com/android/internal/app/IBatteryStats.aidl @@ -52,7 +52,7 @@ interface IBatteryStats { // Remaining methods are only used in Java. - BatteryUsageStats getBatteryUsageStats(in BatteryUsageStatsQuery query); + List getBatteryUsageStats(in List queries); @UnsupportedAppUsage byte[] getStatistics(); diff --git a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java index 964568c3307b4..e76e34f840ba7 100644 --- a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java +++ b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java @@ -83,7 +83,7 @@ public class BatteryUsageStatsProvider { /** * Returns a snapshot of battery attribution data. */ - public BatteryUsageStats getBatteryUsageStats(BatteryUsageStatsQuery query) { + public List getBatteryUsageStats(List queries) { // TODO(b/174186345): instead of BatteryStatsHelper, use PowerCalculators directly. final BatteryStatsHelper batteryStatsHelper = new BatteryStatsHelper(mContext, @@ -100,17 +100,21 @@ public class BatteryUsageStatsProvider { batteryStatsHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED, users); + ArrayList results = new ArrayList<>(queries.size()); + for (int i = 0; i < queries.size(); i++) { + results.add(getBatteryUsageStats(queries.get(i), batteryStatsHelper, users)); + } + return results; + } + + private BatteryUsageStats getBatteryUsageStats(BatteryUsageStatsQuery query, + BatteryStatsHelper batteryStatsHelper, SparseArray users) { // TODO(b/174186358): read extra power component number from configuration final int customPowerComponentCount = 0; final int customTimeComponentCount = 0; - final boolean includeModeledComponents = - (query.getFlags() & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED) - != 0; - final BatteryUsageStats.Builder batteryUsageStatsBuilder = - new BatteryUsageStats.Builder(customPowerComponentCount, customTimeComponentCount, - includeModeledComponents) + new BatteryUsageStats.Builder(customPowerComponentCount, customTimeComponentCount) .setDischargePercentage(batteryStatsHelper.getStats().getDischargeAmount(0)) .setConsumedPower(batteryStatsHelper.getTotalPower()); diff --git a/core/java/com/android/internal/os/CpuPowerCalculator.java b/core/java/com/android/internal/os/CpuPowerCalculator.java index 7972924549e5c..11c87618762e4 100644 --- a/core/java/com/android/internal/os/CpuPowerCalculator.java +++ b/core/java/com/android/internal/os/CpuPowerCalculator.java @@ -122,11 +122,5 @@ public class CpuPowerCalculator extends PowerCalculator { .setUsageDurationMillis(BatteryConsumer.TIME_COMPONENT_CPU, cpuTimeMs) .setUsageDurationMillis(BatteryConsumer.TIME_COMPONENT_CPU_FOREGROUND, cpuFgTimeMs) .setPackageWithHighestDrain(packageWithHighestDrain); - - if ((query.getFlags() - & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_MODELED) != 0) { - app.setConsumedPowerForCustomComponent(BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU, cpuPowerMah); - } } } diff --git a/core/java/com/android/internal/os/PowerCalculator.java b/core/java/com/android/internal/os/PowerCalculator.java index 974894f33f302..cde1f6fc4fa05 100644 --- a/core/java/com/android/internal/os/PowerCalculator.java +++ b/core/java/com/android/internal/os/PowerCalculator.java @@ -102,7 +102,7 @@ public abstract class PowerCalculator { // TODO(b/175156498): Temporary code during the transition from BatterySippers to // BatteryConsumers. - UidBatteryConsumer.Builder builder = new UidBatteryConsumer.Builder(0, 0, false, u); + UidBatteryConsumer.Builder builder = new UidBatteryConsumer.Builder(0, 0, u); calculateApp(builder, u, rawRealtimeUs, rawUptimeUs, BatteryUsageStatsQuery.DEFAULT); final UidBatteryConsumer uidBatteryConsumer = builder.build(); app.cpuPowerMah = uidBatteryConsumer.getConsumedPower( diff --git a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerData.java b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerData.java index e0d159b632270..9e6827c19cb2f 100644 --- a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerData.java +++ b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerData.java @@ -63,7 +63,9 @@ public class BatteryConsumerData { private final List mEntries = new ArrayList<>(); public BatteryConsumerData(Context context, BatteryStatsHelper batteryStatsHelper, - BatteryUsageStats batteryUsageStats, String batteryConsumerId) { + List batteryUsageStatsList, String batteryConsumerId) { + BatteryUsageStats batteryUsageStats = batteryUsageStatsList.get(0); + BatteryUsageStats powerProfileModeledUsageStats = batteryUsageStatsList.get(1); List usageList = batteryStatsHelper.getUsageList(); BatteryStats batteryStats = batteryStatsHelper.getStats(); @@ -142,16 +144,22 @@ public class BatteryConsumerData { } BatteryConsumer requestedBatteryConsumer = null; - double totalModeledCpuPowerMah = 0; for (BatteryConsumer consumer : batteryUsageStats.getUidBatteryConsumers()) { if (batteryConsumerId(consumer).equals(batteryConsumerId)) { requestedBatteryConsumer = consumer; } + } - totalModeledCpuPowerMah += consumer.getConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU); + double totalModeledCpuPowerMah = 0; + BatteryConsumer requestedBatteryConsumerPowerProfileModeled = null; + for (BatteryConsumer consumer : powerProfileModeledUsageStats.getUidBatteryConsumers()) { + if (batteryConsumerId(consumer).equals(batteryConsumerId)) { + requestedBatteryConsumerPowerProfileModeled = consumer; + } + + totalModeledCpuPowerMah += consumer.getConsumedPower( + BatteryConsumer.POWER_COMPONENT_CPU); } if (requestedBatterySipper == null) { @@ -196,11 +204,10 @@ public class BatteryConsumerData { addEntry("CPU", EntryType.POWER, requestedBatteryConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU), totalCpuPowerMah); - if (totalModeledCpuPowerMah != 0) { + if (requestedBatteryConsumerPowerProfileModeled != null) { addEntry("CPU (modeled)", EntryType.POWER, - requestedBatteryConsumer.getConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU), + requestedBatteryConsumerPowerProfileModeled.getConsumedPower( + BatteryConsumer.POWER_COMPONENT_CPU), totalModeledCpuPowerMah); } } else { diff --git a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java index 87a175af41cb0..4ead8eef5684d 100644 --- a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java +++ b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java @@ -68,7 +68,7 @@ public class BatteryStatsViewerActivity extends ComponentActivity { private ActivityResultLauncher mStartAppPicker = registerForActivityResult( BatteryConsumerPickerActivity.CONTRACT, this::onApplicationSelected); private BatteryStatsHelper mBatteryStatsHelper; - private BatteryUsageStats mBatteryUsageStats; + private List mBatteryUsageStats; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -188,7 +188,8 @@ public class BatteryStatsViewerActivity extends ComponentActivity { } } - private static class BatteryUsageStatsLoader extends AsyncLoaderCompat { + private static class BatteryUsageStatsLoader extends + AsyncLoaderCompat> { private final BatteryStatsManager mBatteryStatsManager; BatteryUsageStatsLoader(Context context) { @@ -197,33 +198,38 @@ public class BatteryStatsViewerActivity extends ComponentActivity { } @Override - public BatteryUsageStats loadInBackground() { - final BatteryUsageStatsQuery query = new BatteryUsageStatsQuery.Builder() - .includeModeled() - .build(); - return mBatteryStatsManager.getBatteryUsageStats(query); + public List loadInBackground() { + final BatteryUsageStatsQuery queryDefault = + new BatteryUsageStatsQuery.Builder().build(); + final BatteryUsageStatsQuery queryPowerProfileModeledOnly = + new BatteryUsageStatsQuery.Builder() + .powerProfileModeledOnly() + .build(); + return mBatteryStatsManager.getBatteryUsageStats( + List.of(queryDefault, queryPowerProfileModeledOnly)); } @Override - protected void onDiscardResult(BatteryUsageStats result) { + protected void onDiscardResult(List result) { } } - private class BatteryUsageStatsLoaderCallbacks implements LoaderCallbacks { + private class BatteryUsageStatsLoaderCallbacks + implements LoaderCallbacks> { @NonNull @Override - public Loader onCreateLoader(int id, Bundle args) { + public Loader> onCreateLoader(int id, Bundle args) { return new BatteryUsageStatsLoader(BatteryStatsViewerActivity.this); } @Override - public void onLoadFinished(@NonNull Loader loader, - BatteryUsageStats batteryUsageStats) { + public void onLoadFinished(@NonNull Loader> loader, + List batteryUsageStats) { onBatteryUsageStatsLoaded(batteryUsageStats); } @Override - public void onLoaderReset(@NonNull Loader loader) { + public void onLoaderReset(@NonNull Loader> loader) { } } @@ -232,7 +238,7 @@ public class BatteryStatsViewerActivity extends ComponentActivity { onBatteryStatsDataLoaded(); } - private void onBatteryUsageStatsLoaded(BatteryUsageStats batteryUsageStats) { + private void onBatteryUsageStatsLoaded(List batteryUsageStats) { mBatteryUsageStats = batteryUsageStats; onBatteryStatsDataLoaded(); } diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java index 59534e4a84efb..2c71287fac4a1 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsRule.java @@ -114,7 +114,7 @@ public class BatteryUsageStatsRule implements TestRule { } void apply(PowerCalculator calculator) { - BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(0, 0, false); + BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(0, 0); SparseArray uidStats = mBatteryStats.getUidStats(); for (int i = 0; i < uidStats.size(); i++) { builder.getOrCreateUidBatteryConsumerBuilder(uidStats.valueAt(i)); diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java index 7b1ca8f362248..018a810772bed 100644 --- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java +++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsTest.java @@ -66,7 +66,7 @@ public class BatteryUsageStatsTest { final MockBatteryStatsImpl batteryStats = new MockBatteryStatsImpl(clocks); final BatteryStatsImpl.Uid batteryStatsUid = batteryStats.getUidStatsLocked(2000); - final BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(1, 1, true); + final BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(1, 1); builder.setConsumedPower(100); builder.setDischargePercentage(20); @@ -77,9 +77,6 @@ public class BatteryUsageStatsTest { uidBatteryConsumerBuilder.setConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU, 400); uidBatteryConsumerBuilder.setConsumedPowerForCustomComponent( BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID, 500); - uidBatteryConsumerBuilder.setConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU, 510); uidBatteryConsumerBuilder.setUsageDurationMillis(BatteryConsumer.TIME_COMPONENT_CPU, 600); uidBatteryConsumerBuilder.setUsageDurationMillis( BatteryConsumer.TIME_COMPONENT_CPU_FOREGROUND, 700); @@ -92,9 +89,6 @@ public class BatteryUsageStatsTest { systemBatteryConsumerBuilder.setConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU, 10100); systemBatteryConsumerBuilder.setConsumedPowerForCustomComponent( BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID, 10200); - systemBatteryConsumerBuilder.setConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU, 10210); systemBatteryConsumerBuilder.setUsageDurationMillis( BatteryConsumer.TIME_COMPONENT_CPU, 10300); systemBatteryConsumerBuilder.setUsageDurationForCustomComponentMillis( @@ -118,9 +112,6 @@ public class BatteryUsageStatsTest { BatteryConsumer.POWER_COMPONENT_CPU)).isEqualTo(400); assertThat(uidBatteryConsumer.getConsumedPowerForCustomComponent( BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID)).isEqualTo(500); - assertThat(uidBatteryConsumer.getConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU)).isEqualTo(510); assertThat(uidBatteryConsumer.getUsageDurationMillis( BatteryConsumer.TIME_COMPONENT_CPU)).isEqualTo(600); assertThat(uidBatteryConsumer.getUsageDurationMillis( @@ -141,9 +132,6 @@ public class BatteryUsageStatsTest { BatteryConsumer.POWER_COMPONENT_CPU)).isEqualTo(10100); assertThat(systemBatteryConsumer.getConsumedPowerForCustomComponent( BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID)).isEqualTo(10200); - assertThat(systemBatteryConsumer.getConsumedPowerForCustomComponent( - BatteryConsumer.FIRST_MODELED_POWER_COMPONENT_ID - + BatteryConsumer.POWER_COMPONENT_CPU)).isEqualTo(10210); assertThat(systemBatteryConsumer.getUsageDurationMillis( BatteryConsumer.TIME_COMPONENT_CPU)).isEqualTo(10300); assertThat(systemBatteryConsumer.getUsageDurationForCustomComponentMillis( diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index c2872405ae184..0dc65f82381f8 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -561,10 +561,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub * Returns BatteryUsageStats, which contains power attribution data on a per-subsystem * and per-UID basis. */ - public BatteryUsageStats getBatteryUsageStats(BatteryUsageStatsQuery query) { + public List getBatteryUsageStats(List queries) { mContext.enforceCallingPermission( android.Manifest.permission.BATTERY_STATS, null); - return mBatteryUsageStatsProvider.getBatteryUsageStats(query); + return mBatteryUsageStatsProvider.getBatteryUsageStats(queries); } public byte[] getStatistics() {