summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zaiyue Xue <xuezaiyue@google.com> 2023-08-18 17:32:10 +0800
committer Wesley Wang <wesleycwwang@google.com> 2023-09-01 06:45:20 +0000
commit0549a3f28dc446624717c222757faaff032fccf1 (patch)
tree5e1b4732da2e1816fc9c28b35b74fd5bdc3eb3fa
parent9a619fccbf0095dd543a070ac6158523b75cc07a (diff)
Add a threshold to filter out small power usage in battery stats.
Bug: 289185969 Bug: 291689623 Test: presubmit Change-Id: I486109b4a617b9ac3b24df59e28a7ea8b2a76c57
-rw-r--r--core/java/android/os/AggregateBatteryConsumer.java5
-rw-r--r--core/java/android/os/BatteryConsumer.java5
-rw-r--r--core/java/android/os/BatteryUsageStats.java18
-rw-r--r--core/java/android/os/BatteryUsageStatsQuery.java22
-rw-r--r--core/java/android/os/PowerComponents.java10
-rw-r--r--core/java/android/os/UidBatteryConsumer.java13
-rw-r--r--core/java/android/os/UserBatteryConsumer.java4
-rw-r--r--core/tests/batterystatstests/BatteryUsageStatsProtoTests/src/com/android/internal/os/BatteryUsageStatsPulledTest.java5
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java9
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java7
-rw-r--r--services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsRule.java4
-rw-r--r--services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsTest.java10
-rw-r--r--tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java2
13 files changed, 82 insertions, 32 deletions
diff --git a/core/java/android/os/AggregateBatteryConsumer.java b/core/java/android/os/AggregateBatteryConsumer.java
index 7a153ef9c6f3..c5f56144c29c 100644
--- a/core/java/android/os/AggregateBatteryConsumer.java
+++ b/core/java/android/os/AggregateBatteryConsumer.java
@@ -116,8 +116,9 @@ public final class AggregateBatteryConsumer extends BatteryConsumer {
* Builder for DeviceBatteryConsumer.
*/
public static final class Builder extends BaseBuilder<AggregateBatteryConsumer.Builder> {
- public Builder(BatteryConsumer.BatteryConsumerData data, int scope) {
- super(data, CONSUMER_TYPE_AGGREGATE);
+ public Builder(BatteryConsumer.BatteryConsumerData data, int scope,
+ double minConsumedPowerThreshold) {
+ super(data, CONSUMER_TYPE_AGGREGATE, minConsumedPowerThreshold);
data.putInt(COLUMN_INDEX_SCOPE, scope);
}
diff --git a/core/java/android/os/BatteryConsumer.java b/core/java/android/os/BatteryConsumer.java
index 0ba8d51e820f..ca84b3563561 100644
--- a/core/java/android/os/BatteryConsumer.java
+++ b/core/java/android/os/BatteryConsumer.java
@@ -795,11 +795,12 @@ public abstract class BatteryConsumer {
protected final BatteryConsumer.BatteryConsumerData mData;
protected final PowerComponents.Builder mPowerComponentsBuilder;
- public BaseBuilder(BatteryConsumer.BatteryConsumerData data, int consumerType) {
+ public BaseBuilder(BatteryConsumer.BatteryConsumerData data, int consumerType,
+ double minConsumedPowerThreshold) {
mData = data;
data.putLong(COLUMN_INDEX_BATTERY_CONSUMER_TYPE, consumerType);
- mPowerComponentsBuilder = new PowerComponents.Builder(data);
+ mPowerComponentsBuilder = new PowerComponents.Builder(data, minConsumedPowerThreshold);
}
@Nullable
diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java
index e2c52cecc2b1..cc37b5433b82 100644
--- a/core/java/android/os/BatteryUsageStats.java
+++ b/core/java/android/os/BatteryUsageStats.java
@@ -707,7 +707,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
XML_ATTR_PREFIX_INCLUDES_PROC_STATE_DATA, false);
builder = new Builder(customComponentNames.toArray(new String[0]), true,
- includesProcStateData);
+ includesProcStateData, 0);
builder.setStatsStartTimestamp(
parser.getAttributeLong(null, XML_ATTR_START_TIMESTAMP));
@@ -782,6 +782,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
private final String[] mCustomPowerComponentNames;
private final boolean mIncludePowerModels;
private final boolean mIncludesProcessStateData;
+ private final double mMinConsumedPowerThreshold;
private final BatteryConsumer.BatteryConsumerDataLayout mBatteryConsumerDataLayout;
private long mStatsStartTimestampMs;
private long mStatsEndTimestampMs;
@@ -802,11 +803,11 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
private BatteryStatsHistory mBatteryStatsHistory;
public Builder(@NonNull String[] customPowerComponentNames) {
- this(customPowerComponentNames, false, false);
+ this(customPowerComponentNames, false, false, 0);
}
public Builder(@NonNull String[] customPowerComponentNames, boolean includePowerModels,
- boolean includeProcessStateData) {
+ boolean includeProcessStateData, double minConsumedPowerThreshold) {
mBatteryConsumersCursorWindow =
new CursorWindow(null, BATTERY_CONSUMER_CURSOR_WINDOW_SIZE);
mBatteryConsumerDataLayout =
@@ -817,12 +818,14 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
mCustomPowerComponentNames = customPowerComponentNames;
mIncludePowerModels = includePowerModels;
mIncludesProcessStateData = includeProcessStateData;
+ mMinConsumedPowerThreshold = minConsumedPowerThreshold;
for (int scope = 0; scope < AGGREGATE_BATTERY_CONSUMER_SCOPE_COUNT; scope++) {
final BatteryConsumer.BatteryConsumerData data =
BatteryConsumer.BatteryConsumerData.create(mBatteryConsumersCursorWindow,
mBatteryConsumerDataLayout);
mAggregateBatteryConsumersBuilders[scope] =
- new AggregateBatteryConsumer.Builder(data, scope);
+ new AggregateBatteryConsumer.Builder(
+ data, scope, mMinConsumedPowerThreshold);
}
}
@@ -961,7 +964,8 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
final BatteryConsumer.BatteryConsumerData data =
BatteryConsumer.BatteryConsumerData.create(mBatteryConsumersCursorWindow,
mBatteryConsumerDataLayout);
- builder = new UidBatteryConsumer.Builder(data, batteryStatsUid);
+ builder = new UidBatteryConsumer.Builder(data, batteryStatsUid,
+ mMinConsumedPowerThreshold);
mUidBatteryConsumerBuilders.put(uid, builder);
}
return builder;
@@ -979,7 +983,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
final BatteryConsumer.BatteryConsumerData data =
BatteryConsumer.BatteryConsumerData.create(mBatteryConsumersCursorWindow,
mBatteryConsumerDataLayout);
- builder = new UidBatteryConsumer.Builder(data, uid);
+ builder = new UidBatteryConsumer.Builder(data, uid, mMinConsumedPowerThreshold);
mUidBatteryConsumerBuilders.put(uid, builder);
}
return builder;
@@ -996,7 +1000,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable {
final BatteryConsumer.BatteryConsumerData data =
BatteryConsumer.BatteryConsumerData.create(mBatteryConsumersCursorWindow,
mBatteryConsumerDataLayout);
- builder = new UserBatteryConsumer.Builder(data, userId);
+ builder = new UserBatteryConsumer.Builder(data, userId, mMinConsumedPowerThreshold);
mUserBatteryConsumerBuilders.put(userId, builder);
}
return builder;
diff --git a/core/java/android/os/BatteryUsageStatsQuery.java b/core/java/android/os/BatteryUsageStatsQuery.java
index b3f4d9874f4e..49d7e8bc5632 100644
--- a/core/java/android/os/BatteryUsageStatsQuery.java
+++ b/core/java/android/os/BatteryUsageStatsQuery.java
@@ -80,6 +80,7 @@ public final class BatteryUsageStatsQuery implements Parcelable {
private final long mMaxStatsAgeMs;
private final long mFromTimestamp;
private final long mToTimestamp;
+ private final double mMinConsumedPowerThreshold;
private final @BatteryConsumer.PowerComponent int[] mPowerComponents;
private BatteryUsageStatsQuery(@NonNull Builder builder) {
@@ -87,6 +88,7 @@ public final class BatteryUsageStatsQuery implements Parcelable {
mUserIds = builder.mUserIds != null ? builder.mUserIds.toArray()
: new int[]{UserHandle.USER_ALL};
mMaxStatsAgeMs = builder.mMaxStatsAgeMs;
+ mMinConsumedPowerThreshold = builder.mMinConsumedPowerThreshold;
mFromTimestamp = builder.mFromTimestamp;
mToTimestamp = builder.mToTimestamp;
mPowerComponents = builder.mPowerComponents;
@@ -137,6 +139,14 @@ public final class BatteryUsageStatsQuery implements Parcelable {
}
/**
+ * Returns the minimal power component consumed power threshold. The small power consuming
+ * components will be reported as zero.
+ */
+ public double getMinConsumedPowerThreshold() {
+ return mMinConsumedPowerThreshold;
+ }
+
+ /**
* Returns the exclusive lower bound of the stored snapshot timestamps that should be included
* in the aggregation. Ignored if {@link #getToTimestamp()} is zero.
*/
@@ -158,6 +168,7 @@ public final class BatteryUsageStatsQuery implements Parcelable {
mUserIds = new int[in.readInt()];
in.readIntArray(mUserIds);
mMaxStatsAgeMs = in.readLong();
+ mMinConsumedPowerThreshold = in.readDouble();
mFromTimestamp = in.readLong();
mToTimestamp = in.readLong();
mPowerComponents = in.createIntArray();
@@ -169,6 +180,7 @@ public final class BatteryUsageStatsQuery implements Parcelable {
dest.writeInt(mUserIds.length);
dest.writeIntArray(mUserIds);
dest.writeLong(mMaxStatsAgeMs);
+ dest.writeDouble(mMinConsumedPowerThreshold);
dest.writeLong(mFromTimestamp);
dest.writeLong(mToTimestamp);
dest.writeIntArray(mPowerComponents);
@@ -202,6 +214,7 @@ public final class BatteryUsageStatsQuery implements Parcelable {
private long mMaxStatsAgeMs = DEFAULT_MAX_STATS_AGE_MS;
private long mFromTimestamp;
private long mToTimestamp;
+ private double mMinConsumedPowerThreshold = 0;
private @BatteryConsumer.PowerComponent int[] mPowerComponents;
/**
@@ -301,5 +314,14 @@ public final class BatteryUsageStatsQuery implements Parcelable {
mMaxStatsAgeMs = maxStatsAgeMs;
return this;
}
+
+ /**
+ * Set the minimal power component consumed power threshold. The small power consuming
+ * components will be reported as zero.
+ */
+ public Builder setMinConsumedPowerThreshold(double minConsumedPowerThreshold) {
+ mMinConsumedPowerThreshold = minConsumedPowerThreshold;
+ return this;
+ }
}
}
diff --git a/core/java/android/os/PowerComponents.java b/core/java/android/os/PowerComponents.java
index 5dffa0a0ac34..9e5f5399301c 100644
--- a/core/java/android/os/PowerComponents.java
+++ b/core/java/android/os/PowerComponents.java
@@ -461,9 +461,11 @@ class PowerComponents {
private static final byte POWER_MODEL_UNINITIALIZED = -1;
private final BatteryConsumer.BatteryConsumerData mData;
+ private final double mMinConsumedPowerThreshold;
- Builder(BatteryConsumer.BatteryConsumerData data) {
+ Builder(BatteryConsumer.BatteryConsumerData data, double minConsumedPowerThreshold) {
mData = data;
+ mMinConsumedPowerThreshold = minConsumedPowerThreshold;
for (BatteryConsumer.Key[] keys : mData.layout.keys) {
for (BatteryConsumer.Key key : keys) {
if (key.mPowerModelColumnIndex != -1) {
@@ -476,6 +478,9 @@ class PowerComponents {
@NonNull
public Builder setConsumedPower(BatteryConsumer.Key key, double componentPower,
int powerModel) {
+ if (Math.abs(componentPower) < mMinConsumedPowerThreshold) {
+ componentPower = 0;
+ }
mData.putDouble(key.mPowerColumnIndex, componentPower);
if (key.mPowerModelColumnIndex != -1) {
mData.putInt(key.mPowerModelColumnIndex, powerModel);
@@ -491,6 +496,9 @@ class PowerComponents {
*/
@NonNull
public Builder setConsumedPowerForCustomComponent(int componentId, double componentPower) {
+ if (Math.abs(componentPower) < mMinConsumedPowerThreshold) {
+ componentPower = 0;
+ }
final int index = componentId - BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID;
if (index < 0 || index >= mData.layout.customPowerComponentCount) {
throw new IllegalArgumentException(
diff --git a/core/java/android/os/UidBatteryConsumer.java b/core/java/android/os/UidBatteryConsumer.java
index 103452d255a7..03a1b6f7fe01 100644
--- a/core/java/android/os/UidBatteryConsumer.java
+++ b/core/java/android/os/UidBatteryConsumer.java
@@ -207,17 +207,18 @@ public final class UidBatteryConsumer extends BatteryConsumer {
private String mPackageWithHighestDrain = PACKAGE_NAME_UNINITIALIZED;
private boolean mExcludeFromBatteryUsageStats;
- public Builder(BatteryConsumerData data, @NonNull BatteryStats.Uid batteryStatsUid) {
- this(data, batteryStatsUid, batteryStatsUid.getUid());
+ public Builder(BatteryConsumerData data, @NonNull BatteryStats.Uid batteryStatsUid,
+ double minConsumedPowerThreshold) {
+ this(data, batteryStatsUid, batteryStatsUid.getUid(), minConsumedPowerThreshold);
}
- public Builder(BatteryConsumerData data, int uid) {
- this(data, null, uid);
+ public Builder(BatteryConsumerData data, int uid, double minConsumedPowerThreshold) {
+ this(data, null, uid, minConsumedPowerThreshold);
}
private Builder(BatteryConsumerData data, @Nullable BatteryStats.Uid batteryStatsUid,
- int uid) {
- super(data, CONSUMER_TYPE_UID);
+ int uid, double minConsumedPowerThreshold) {
+ super(data, CONSUMER_TYPE_UID, minConsumedPowerThreshold);
mBatteryStatsUid = batteryStatsUid;
mUid = uid;
mIsVirtualUid = mUid == Process.SDK_SANDBOX_VIRTUAL_UID;
diff --git a/core/java/android/os/UserBatteryConsumer.java b/core/java/android/os/UserBatteryConsumer.java
index 6b4a5cfc836f..a2ff078263ca 100644
--- a/core/java/android/os/UserBatteryConsumer.java
+++ b/core/java/android/os/UserBatteryConsumer.java
@@ -107,8 +107,8 @@ public class UserBatteryConsumer extends BatteryConsumer {
public static final class Builder extends BaseBuilder<Builder> {
private List<UidBatteryConsumer.Builder> mUidBatteryConsumers;
- Builder(BatteryConsumerData data, int userId) {
- super(data, CONSUMER_TYPE_USER);
+ Builder(BatteryConsumerData data, int userId, double minConsumedPowerThreshold) {
+ super(data, CONSUMER_TYPE_USER, minConsumedPowerThreshold);
data.putLong(COLUMN_INDEX_USER_ID, userId);
}
diff --git a/core/tests/batterystatstests/BatteryUsageStatsProtoTests/src/com/android/internal/os/BatteryUsageStatsPulledTest.java b/core/tests/batterystatstests/BatteryUsageStatsProtoTests/src/com/android/internal/os/BatteryUsageStatsPulledTest.java
index 0676f899674d..aaaa3c7740c5 100644
--- a/core/tests/batterystatstests/BatteryUsageStatsProtoTests/src/com/android/internal/os/BatteryUsageStatsPulledTest.java
+++ b/core/tests/batterystatstests/BatteryUsageStatsProtoTests/src/com/android/internal/os/BatteryUsageStatsPulledTest.java
@@ -241,7 +241,8 @@ public class BatteryUsageStatsPulledTest {
final BatteryUsageStats.Builder builder =
new BatteryUsageStats.Builder(new String[]{"CustomConsumer1", "CustomConsumer2"},
/* includePowerModels */ true,
- /* includeProcessStats */true)
+ /* includeProcessStats */ true,
+ /* minConsumedPowerThreshold */ 0)
.setDischargePercentage(20)
.setDischargedPowerRange(1000, 2000)
.setDischargeDurationMs(1234)
@@ -325,7 +326,7 @@ public class BatteryUsageStatsPulledTest {
@Test
public void testLargeAtomTruncated() {
final BatteryUsageStats.Builder builder =
- new BatteryUsageStats.Builder(new String[0], true, false);
+ new BatteryUsageStats.Builder(new String[0], true, false, 0);
// If not truncated, this BatteryUsageStats object would generate a proto buffer
// significantly larger than 50 Kb
for (int i = 0; i < 3000; i++) {
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index dc6f8584006e..2c745ae3bf55 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -17,7 +17,6 @@
package com.android.server.am;
import static android.Manifest.permission.BATTERY_STATS;
-import static android.Manifest.permission.BLUETOOTH_CONNECT;
import static android.Manifest.permission.DEVICE_POWER;
import static android.Manifest.permission.NETWORK_STACK;
import static android.Manifest.permission.POWER_SAVER;
@@ -31,6 +30,7 @@ import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE;
import android.annotation.EnforcePermission;
import android.annotation.NonNull;
import android.annotation.RequiresNoPermission;
+import android.annotation.SuppressLint;
import android.app.StatsManager;
import android.app.usage.NetworkStatsManager;
import android.bluetooth.BluetoothActivityEnergyInfo;
@@ -82,6 +82,7 @@ import android.os.health.HealthStatsParceler;
import android.os.health.HealthStatsWriter;
import android.os.health.UidHealthStats;
import android.power.PowerStatsInternal;
+import android.provider.DeviceConfig;
import android.provider.Settings;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.ModemActivityInfo;
@@ -169,6 +170,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
.replaceWith("?");
private static final int MAX_LOW_POWER_STATS_SIZE = 32768;
private static final int POWER_STATS_QUERY_TIMEOUT_MILLIS = 2000;
+ private static final String MIN_CONSUMED_POWER_THRESHOLD_KEY = "min_consumed_power_threshold";
private static final String EMPTY = "Empty";
private final HandlerThread mHandlerThread;
@@ -855,12 +857,17 @@ public final class BatteryStatsService extends IBatteryStats.Stub
final BatteryUsageStats bus;
switch (atomTag) {
case FrameworkStatsLog.BATTERY_USAGE_STATS_SINCE_RESET:
+ @SuppressLint("MissingPermission")
+ final double minConsumedPowerThreshold =
+ DeviceConfig.getFloat(DeviceConfig.NAMESPACE_BATTERY_STATS,
+ MIN_CONSUMED_POWER_THRESHOLD_KEY, 0);
final BatteryUsageStatsQuery querySinceReset =
new BatteryUsageStatsQuery.Builder()
.setMaxStatsAgeMs(0)
.includeProcessStateData()
.includeVirtualUids()
.includePowerModels()
+ .setMinConsumedPowerThreshold(minConsumedPowerThreshold)
.build();
bus = getBatteryUsageStats(List.of(querySinceReset)).get(0);
break;
diff --git a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
index ebd4aec3aef9..5e5f6f2bd644 100644
--- a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
+++ b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
@@ -166,10 +166,11 @@ public class BatteryUsageStatsProvider {
&& mStats.isProcessStateDataAvailable();
final boolean includeVirtualUids = ((query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_VIRTUAL_UIDS) != 0);
+ final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold();
final BatteryUsageStats.Builder batteryUsageStatsBuilder = new BatteryUsageStats.Builder(
mStats.getCustomEnergyConsumerNames(), includePowerModels,
- includeProcessStateData);
+ includeProcessStateData, minConsumedPowerThreshold);
// TODO(b/188068523): use a monotonic clock to ensure resilience of order and duration
// of stats sessions to wall-clock adjustments
batteryUsageStatsBuilder.setStatsStartTimestamp(mStats.getStartClockTime());
@@ -303,10 +304,12 @@ public class BatteryUsageStatsProvider {
final boolean includeProcessStateData = ((query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_PROCESS_STATE_DATA) != 0)
&& mStats.isProcessStateDataAvailable();
+ final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold();
final String[] customEnergyConsumerNames = mStats.getCustomEnergyConsumerNames();
final BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(
- customEnergyConsumerNames, includePowerModels, includeProcessStateData);
+ customEnergyConsumerNames, includePowerModels, includeProcessStateData,
+ minConsumedPowerThreshold);
if (mBatteryUsageStatsStore == null) {
Log.e(TAG, "BatteryUsageStatsStore is unavailable");
return builder.build();
diff --git a/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsRule.java b/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
index 3135215d65f7..a1e1da68bfcc 100644
--- a/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
+++ b/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
@@ -222,8 +222,10 @@ public class BatteryUsageStatsRule implements TestRule {
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_POWER_MODELS) != 0;
final boolean includeProcessStateData = (query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_PROCESS_STATE_DATA) != 0;
+ final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold();
BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(
- customPowerComponentNames, includePowerModels, includeProcessStateData);
+ customPowerComponentNames, includePowerModels, includeProcessStateData,
+ minConsumedPowerThreshold);
SparseArray<? extends BatteryStats.Uid> uidStats = mBatteryStats.getUidStats();
for (int i = 0; i < uidStats.size(); i++) {
builder.getOrCreateUidBatteryConsumerBuilder(uidStats.valueAt(i));
diff --git a/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsTest.java b/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
index 266a22632a6d..07c486c6ce58 100644
--- a/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
+++ b/services/tests/servicestests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
@@ -181,7 +181,7 @@ public class BatteryUsageStatsTest {
final BatteryUsageStats stats2 = buildBatteryUsageStats2(new String[]{"FOO"}, true).build();
final BatteryUsageStats sum =
- new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true)
+ new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true, 0)
.add(stats1)
.add(stats2)
.build();
@@ -222,7 +222,7 @@ public class BatteryUsageStatsTest {
@Test
public void testAdd_customComponentMismatch() {
final BatteryUsageStats.Builder builder =
- new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true);
+ new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true, 0);
final BatteryUsageStats stats = buildBatteryUsageStats2(new String[]{"BAR"}, false).build();
assertThrows(IllegalArgumentException.class, () -> builder.add(stats));
@@ -231,7 +231,7 @@ public class BatteryUsageStatsTest {
@Test
public void testAdd_processStateDataMismatch() {
final BatteryUsageStats.Builder builder =
- new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true);
+ new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true, 0);
final BatteryUsageStats stats = buildBatteryUsageStats2(new String[]{"FOO"}, false).build();
assertThrows(IllegalArgumentException.class, () -> builder.add(stats));
@@ -260,7 +260,7 @@ public class BatteryUsageStatsTest {
final MockBatteryStatsImpl batteryStats = new MockBatteryStatsImpl(clocks);
final BatteryUsageStats.Builder builder =
- new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true)
+ new BatteryUsageStats.Builder(new String[]{"FOO"}, true, true, 0)
.setBatteryCapacity(4000)
.setDischargePercentage(20)
.setDischargedPowerRange(1000, 2000)
@@ -305,7 +305,7 @@ public class BatteryUsageStatsTest {
final BatteryUsageStats.Builder builder =
new BatteryUsageStats.Builder(customPowerComponentNames, true,
- includeProcessStateData);
+ includeProcessStateData, 0);
builder.setDischargePercentage(30)
.setDischargedPowerRange(1234, 2345)
.setStatsStartTimestamp(2000)
diff --git a/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java b/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
index fe2fe0b40891..08430f2f2744 100644
--- a/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
+++ b/tests/BatteryStatsPerfTest/src/com/android/internal/os/BatteryUsageStatsPerfTest.java
@@ -159,7 +159,7 @@ public class BatteryUsageStatsPerfTest {
private static BatteryUsageStats buildBatteryUsageStats() {
final BatteryUsageStats.Builder builder =
- new BatteryUsageStats.Builder(new String[]{"FOO"}, true, false)
+ new BatteryUsageStats.Builder(new String[]{"FOO"}, true, false, 0)
.setBatteryCapacity(4000)
.setDischargePercentage(20)
.setDischargedPowerRange(1000, 2000)