summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java46
-rw-r--r--services/core/java/com/android/server/power/stats/AggregatedPowerStats.java12
-rw-r--r--services/core/java/com/android/server/power/stats/AggregatedPowerStatsConfig.java22
-rw-r--r--services/core/java/com/android/server/power/stats/BinaryStatePowerStatsProcessor.java2
-rw-r--r--services/core/java/com/android/server/power/stats/PowerComponentAggregatedPowerStats.java25
-rw-r--r--services/core/java/com/android/server/power/stats/PowerStatsProcessor.java2
-rw-r--r--services/core/java/com/android/server/power/stats/SensorPowerStatsProcessor.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/AggregatedPowerStatsTest.java1
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/AmbientDisplayPowerStatsProcessorTest.java12
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BinaryStatePowerStatsProcessorTest.java46
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BluetoothPowerStatsProcessorTest.java35
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/CameraPowerStatsTest.java26
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/CpuPowerStatsProcessorTest.java16
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/CustomEnergyConsumerPowerStatsTest.java1
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/GnssPowerStatsTest.java53
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/MobileRadioPowerStatsProcessorTest.java20
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/PhoneCallPowerStatsProcessorTest.java16
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/PowerStatsExporterTest.java9
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/ScreenPowerStatsProcessorTest.java15
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/SensorPowerStatsProcessorTest.java24
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsProcessorTest.java34
21 files changed, 222 insertions, 197 deletions
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index 4aac7a0a04eb..5137b4c72fae 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -488,8 +488,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new CpuPowerStatsProcessor(mPowerProfile, mCpuScalingPolicies));
+ .setProcessorSupplier(
+ () -> new CpuPowerStatsProcessor(mPowerProfile, mCpuScalingPolicies));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SCREEN)
.trackDeviceStates(
@@ -498,12 +498,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub
.trackUidStates(
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN)
- .setProcessor(
- new ScreenPowerStatsProcessor(mPowerProfile));
+ .setProcessorSupplier(
+ () -> new ScreenPowerStatsProcessor(mPowerProfile));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
BatteryConsumer.POWER_COMPONENT_SCREEN)
- .setProcessor(new AmbientDisplayPowerStatsProcessor());
+ .setProcessorSupplier(AmbientDisplayPowerStatsProcessor::new);
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
.trackDeviceStates(
@@ -513,12 +513,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new MobileRadioPowerStatsProcessor(mPowerProfile));
+ .setProcessorSupplier(
+ () -> new MobileRadioPowerStatsProcessor(mPowerProfile));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_PHONE,
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
- .setProcessor(new PhoneCallPowerStatsProcessor());
+ .setProcessorSupplier(PhoneCallPowerStatsProcessor::new);
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WIFI)
.trackDeviceStates(
@@ -528,8 +528,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new WifiPowerStatsProcessor(mPowerProfile));
+ .setProcessorSupplier(
+ () -> new WifiPowerStatsProcessor(mPowerProfile));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)
.trackDeviceStates(
@@ -539,8 +539,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new BluetoothPowerStatsProcessor(mPowerProfile));
+ .setProcessorSupplier(
+ () -> new BluetoothPowerStatsProcessor(mPowerProfile));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_AUDIO)
.trackDeviceStates(
@@ -550,8 +550,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
+ .setProcessorSupplier(
+ () -> new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_VIDEO)
.trackDeviceStates(
@@ -561,7 +561,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
+ .setProcessorSupplier(
+ () -> new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)
.trackDeviceStates(
@@ -571,8 +572,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new FlashlightPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
+ .setProcessorSupplier(
+ () -> new FlashlightPowerStatsProcessor(mPowerProfile,
+ mPowerStatsUidResolver));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CAMERA)
.trackDeviceStates(
@@ -582,8 +584,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new CameraPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
+ .setProcessorSupplier(
+ () -> new CameraPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_GNSS)
.trackDeviceStates(
@@ -593,8 +595,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
+ .setProcessorSupplier(
+ () -> new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SENSORS)
.trackDeviceStates(
@@ -604,7 +606,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(new SensorPowerStatsProcessor(
+ .setProcessorSupplier(() -> new SensorPowerStatsProcessor(
() -> mContext.getSystemService(SensorManager.class)));
config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new)
diff --git a/services/core/java/com/android/server/power/stats/AggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/AggregatedPowerStats.java
index 7496d2d0689d..674b4bc29ffa 100644
--- a/services/core/java/com/android/server/power/stats/AggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/AggregatedPowerStats.java
@@ -174,8 +174,7 @@ class AggregatedPowerStats {
void start(long timestampMs) {
for (int i = 0; i < mPowerComponentStats.size(); i++) {
- PowerComponentAggregatedPowerStats component = mPowerComponentStats.valueAt(i);
- component.getConfig().getProcessor().start(component, timestampMs);
+ mPowerComponentStats.valueAt(i).start(timestampMs);
}
}
@@ -211,24 +210,23 @@ class AggregatedPowerStats {
stats = new PowerComponentAggregatedPowerStats(this, powerComponent);
stats.setPowerStatsDescriptor(powerStats.descriptor);
stats.copyStatesFrom(mGenericPowerComponent);
+ stats.start(time);
mPowerComponentStats.put(powerComponentId, stats);
}
- PowerStatsProcessor processor = stats.getConfig().getProcessor();
- processor.addPowerStats(stats, powerStats, time);
+ stats.addPowerStats(powerStats, time);
}
public void noteStateChange(BatteryStats.HistoryItem item) {
for (int i = 0; i < mPowerComponentStats.size(); i++) {
- PowerComponentAggregatedPowerStats stats = mPowerComponentStats.valueAt(i);
- stats.getConfig().getProcessor().noteStateChange(stats, item);
+ mPowerComponentStats.valueAt(i).noteStateChange(item);
}
}
void finish(long timestampMs) {
for (int i = 0; i < mPowerComponentStats.size(); i++) {
PowerComponentAggregatedPowerStats component = mPowerComponentStats.valueAt(i);
- component.getConfig().getProcessor().finish(component, timestampMs);
+ component.finish(timestampMs);
}
}
diff --git a/services/core/java/com/android/server/power/stats/AggregatedPowerStatsConfig.java b/services/core/java/com/android/server/power/stats/AggregatedPowerStatsConfig.java
index 1f4a3915e1ff..ec122282e863 100644
--- a/services/core/java/com/android/server/power/stats/AggregatedPowerStatsConfig.java
+++ b/services/core/java/com/android/server/power/stats/AggregatedPowerStatsConfig.java
@@ -74,7 +74,7 @@ public class AggregatedPowerStatsConfig {
private final int mPowerComponentId;
private @TrackedState int[] mTrackedDeviceStates;
private @TrackedState int[] mTrackedUidStates;
- private PowerStatsProcessor mProcessor = NO_OP_PROCESSOR;
+ private Supplier<PowerStatsProcessor> mProcessorSupplier;
PowerComponent(int powerComponentId) {
this.mPowerComponentId = powerComponentId;
@@ -103,12 +103,13 @@ public class AggregatedPowerStatsConfig {
}
/**
- * Takes an object that should be invoked for every aggregated stats span
- * before giving the aggregates stats to consumers. The processor can complete the
- * aggregation process, for example by computing estimated power usage.
+ * A PowerStatsProcessor takes an object that should be invoked for every aggregated
+ * stats span before giving the aggregates stats to consumers. The processor can complete
+ * the aggregation process, for example by computing estimated power usage.
*/
- public PowerComponent setProcessor(@NonNull PowerStatsProcessor processor) {
- mProcessor = processor;
+ public PowerComponent setProcessorSupplier(
+ @NonNull Supplier<PowerStatsProcessor> processorSupplier) {
+ mProcessorSupplier = processorSupplier;
return this;
}
@@ -142,8 +143,11 @@ public class AggregatedPowerStatsConfig {
}
@NonNull
- PowerStatsProcessor getProcessor() {
- return mProcessor;
+ PowerStatsProcessor createProcessor() {
+ if (mProcessorSupplier == null) {
+ return NO_OP_PROCESSOR;
+ }
+ return mProcessorSupplier.get();
}
private boolean isTracked(int[] trackedStates, int state) {
@@ -236,7 +240,7 @@ public class AggregatedPowerStatsConfig {
powerComponent.trackUidStates(mCustomPowerComponent.mTrackedUidStates);
if (mCustomPowerStatsProcessorFactory != null) {
- powerComponent.setProcessor(mCustomPowerStatsProcessorFactory.get());
+ powerComponent.setProcessorSupplier(mCustomPowerStatsProcessorFactory);
}
return powerComponent;
diff --git a/services/core/java/com/android/server/power/stats/BinaryStatePowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/BinaryStatePowerStatsProcessor.java
index 599e63d12906..393fa39cdff6 100644
--- a/services/core/java/com/android/server/power/stats/BinaryStatePowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/BinaryStatePowerStatsProcessor.java
@@ -163,7 +163,7 @@ abstract class BinaryStatePowerStatsProcessor extends PowerStatsProcessor {
private void flushPowerStats(PowerComponentAggregatedPowerStats stats, long timestamp) {
mPowerStats.durationMs = timestamp - mLastUpdateTimestamp;
- stats.addPowerStats(mPowerStats, timestamp);
+ stats.addProcessedPowerStats(mPowerStats, timestamp);
Arrays.fill(mPowerStats.stats, 0);
mPowerStats.uidStats.clear();
diff --git a/services/core/java/com/android/server/power/stats/PowerComponentAggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/PowerComponentAggregatedPowerStats.java
index 950674147861..a92a6fd3e3d5 100644
--- a/services/core/java/com/android/server/power/stats/PowerComponentAggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/PowerComponentAggregatedPowerStats.java
@@ -20,6 +20,7 @@ import static com.android.server.power.stats.MultiStateStats.STATE_DOES_NOT_EXIS
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.os.BatteryStats;
import android.os.UserHandle;
import android.util.IndentingPrintWriter;
import android.util.Slog;
@@ -64,6 +65,7 @@ class PowerComponentAggregatedPowerStats {
private final MultiStateStats.States[] mUidStateConfig;
private final int[] mDeviceStates;
+ private PowerStatsProcessor mProcessor;
private MultiStateStats.Factory mStatsFactory;
private MultiStateStats.Factory mStateStatsFactory;
private MultiStateStats.Factory mUidStatsFactory;
@@ -110,6 +112,21 @@ class PowerComponentAggregatedPowerStats {
mPowerStatsDescriptor = powerStatsDescriptor;
}
+ void start(long timestampMs) {
+ if (mProcessor == null) {
+ mProcessor = mConfig.createProcessor();
+ }
+ mProcessor.start(this, timestampMs);
+ }
+
+ void finish(long timestampMs) {
+ mProcessor.finish(this, timestampMs);
+ }
+
+ void noteStateChange(BatteryStats.HistoryItem item) {
+ mProcessor.noteStateChange(this, item);
+ }
+
void setState(@AggregatedPowerStatsConfig.TrackedState int stateId, int state,
long timestampMs) {
if (mDeviceStats == null) {
@@ -183,6 +200,14 @@ class PowerComponentAggregatedPowerStats {
}
void addPowerStats(PowerStats powerStats, long timestampMs) {
+ // Should call powerStats.addProcessedPowerStats
+ mProcessor.addPowerStats(this, powerStats, timestampMs);
+ }
+
+ /**
+ * Should be called ONLY by PowerStatsProcessor.processPowerStats.
+ */
+ void addProcessedPowerStats(PowerStats powerStats, long timestampMs) {
mPowerStatsDescriptor = powerStats.descriptor;
if (mDeviceStats == null) {
diff --git a/services/core/java/com/android/server/power/stats/PowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/PowerStatsProcessor.java
index c81c7ffe5371..6a8c6b124674 100644
--- a/services/core/java/com/android/server/power/stats/PowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/PowerStatsProcessor.java
@@ -57,7 +57,7 @@ public abstract class PowerStatsProcessor {
void addPowerStats(PowerComponentAggregatedPowerStats stats, PowerStats powerStats,
long timestampMs) {
- stats.addPowerStats(powerStats, timestampMs);
+ stats.addProcessedPowerStats(powerStats, timestampMs);
}
abstract void finish(PowerComponentAggregatedPowerStats stats, long timestampMs);
diff --git a/services/core/java/com/android/server/power/stats/SensorPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/SensorPowerStatsProcessor.java
index 5bd32882c1b1..79d807679970 100644
--- a/services/core/java/com/android/server/power/stats/SensorPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/SensorPowerStatsProcessor.java
@@ -233,7 +233,7 @@ public class SensorPowerStatsProcessor extends PowerStatsProcessor {
private void flushPowerStats(PowerComponentAggregatedPowerStats stats, long timestamp) {
mPowerStats.durationMs = timestamp - mLastUpdateTimestamp;
- stats.addPowerStats(mPowerStats, timestamp);
+ stats.addProcessedPowerStats(mPowerStats, timestamp);
Arrays.fill(mPowerStats.stats, 0);
mPowerStats.uidStats.clear();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/AggregatedPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/AggregatedPowerStatsTest.java
index a4688ccc04ce..04d53dec2a09 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/AggregatedPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/AggregatedPowerStatsTest.java
@@ -111,6 +111,7 @@ public class AggregatedPowerStatsTest {
private AggregatedPowerStats prepareAggregatePowerStats() {
AggregatedPowerStats stats = new AggregatedPowerStats(mAggregatedPowerStatsConfig);
+ stats.start(0);
PowerStats ps = new PowerStats(mPowerComponentDescriptor);
stats.addPowerStats(ps, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/AmbientDisplayPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/AmbientDisplayPowerStatsProcessorTest.java
index 8d2849bdfe73..a2a7e00a39b4 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/AmbientDisplayPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/AmbientDisplayPowerStatsProcessorTest.java
@@ -124,22 +124,18 @@ public class AmbientDisplayPowerStatsProcessorTest {
}
private PowerComponentAggregatedPowerStats collectAndAggregatePowerStats() {
- ScreenPowerStatsProcessor screenPowerStatsProcessor =
- new ScreenPowerStatsProcessor(mStatsRule.getPowerProfile());
- AmbientDisplayPowerStatsProcessor ambientDisplayPowerStatsProcessor =
- new AmbientDisplayPowerStatsProcessor();
-
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SCREEN)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN)
- .setProcessor(screenPowerStatsProcessor);
+ .setProcessorSupplier(
+ () -> new ScreenPowerStatsProcessor(mStatsRule.getPowerProfile()));
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
BatteryConsumer.POWER_COMPONENT_SCREEN)
- .setProcessor(ambientDisplayPowerStatsProcessor);
+ .setProcessorSupplier(AmbientDisplayPowerStatsProcessor::new);
AggregatedPowerStats stats = new AggregatedPowerStats(config);
-
+ stats.start(0);
stats.setDeviceState(STATE_POWER, POWER_STATE_OTHER, 0);
stats.setDeviceState(STATE_SCREEN, SCREEN_STATE_OTHER, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BinaryStatePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BinaryStatePowerStatsProcessorTest.java
index be1c121cfb29..4b40f6897c88 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BinaryStatePowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BinaryStatePowerStatsProcessorTest.java
@@ -44,6 +44,8 @@ import com.android.internal.os.PowerStats;
import org.junit.Rule;
import org.junit.Test;
+import java.util.function.Supplier;
+
public class BinaryStatePowerStatsProcessorTest {
@Rule(order = 0)
public final RavenwoodRule mRavenwood = new RavenwoodRule.Builder()
@@ -74,25 +76,24 @@ public class BinaryStatePowerStatsProcessorTest {
@Test
public void powerProfileModel() {
- TestBinaryStatePowerStatsProcessor processor = new TestBinaryStatePowerStatsProcessor(
- POWER_COMPONENT, /* averagePowerMilliAmp */ 100, mUidResolver);
-
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new TestBinaryStatePowerStatsProcessor(
+ POWER_COMPONENT, /* averagePowerMilliAmp */ 100, mUidResolver));
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1));
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2));
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2));
- processor.finish(stats, 11000);
+ stats.finish(11000);
// Total usage duration is 10000
// Total estimated power = 10000 * 100 = 1000000 mA-ms = 0.277777 mAh
@@ -145,9 +146,6 @@ public class BinaryStatePowerStatsProcessorTest {
@Test
public void energyConsumerModel() {
- TestBinaryStatePowerStatsProcessor processor = new TestBinaryStatePowerStatsProcessor(
- POWER_COMPONENT, /* averagePowerMilliAmp */ 100, mUidResolver);
-
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
PersistableBundle extras = new PersistableBundle();
statsLayout.toExtras(extras);
@@ -157,30 +155,34 @@ public class BinaryStatePowerStatsProcessorTest {
PowerStats powerStats = new PowerStats(descriptor);
powerStats.stats = new long[descriptor.statsArrayLength];
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new TestBinaryStatePowerStatsProcessor(
+ POWER_COMPONENT, /* averagePowerMilliAmp */ 100, mUidResolver));
+
+ stats.start(0);
// Establish a baseline
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
+ stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime());
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1));
statsLayout.setConsumedEnergy(powerStats.stats, 0, 2_160_000);
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
+ stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime());
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2));
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2));
mClock.realtime = 11000;
statsLayout.setConsumedEnergy(powerStats.stats, 0, 1_440_000);
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
+ stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime());
- processor.finish(stats, 11000);
+ stats.finish(11000);
// Total estimated power = 3,600,000 uC = 1.0 mAh
// of which 3,000,000 is distributed:
@@ -261,17 +263,17 @@ public class BinaryStatePowerStatsProcessorTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- BinaryStatePowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
config.trackPowerComponent(POWER_COMPONENT)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
AggregatedPowerStats aggregatedPowerStats = new AggregatedPowerStats(config);
PowerComponentAggregatedPowerStats powerComponentStats =
aggregatedPowerStats.getPowerComponentStats(POWER_COMPONENT);
- processor.start(powerComponentStats, 0);
+ powerComponentStats.start(0);
powerComponentStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
powerComponentStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BluetoothPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BluetoothPowerStatsProcessorTest.java
index c88f0a9d11e1..4a8125f8b4c2 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BluetoothPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BluetoothPowerStatsProcessorTest.java
@@ -59,6 +59,7 @@ import org.mockito.MockitoAnnotations;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.function.IntSupplier;
+import java.util.function.Supplier;
public class BluetoothPowerStatsProcessorTest {
@@ -166,10 +167,8 @@ public class BluetoothPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.BLUETOOTH))
.thenReturn(new int[0]);
- BluetoothPowerStatsProcessor processor =
- new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile()));
BluetoothPowerStatsCollector collector = new BluetoothPowerStatsCollector(mInjector);
collector.setEnabled(true);
@@ -179,6 +178,8 @@ public class BluetoothPowerStatsProcessorTest {
mUidScanTimes.put(APP_UID1, 100);
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -200,7 +201,7 @@ public class BluetoothPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
BluetoothPowerStatsLayout statsLayout =
new BluetoothPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -267,10 +268,8 @@ public class BluetoothPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.BLUETOOTH))
.thenReturn(new int[0]);
- BluetoothPowerStatsProcessor processor =
- new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile()));
BluetoothPowerStatsCollector collector = new BluetoothPowerStatsCollector(mInjector);
collector.setEnabled(true);
@@ -280,6 +279,8 @@ public class BluetoothPowerStatsProcessorTest {
mUidScanTimes.put(APP_UID1, 100);
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -301,7 +302,7 @@ public class BluetoothPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
BluetoothPowerStatsLayout statsLayout =
new BluetoothPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -366,10 +367,8 @@ public class BluetoothPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.BLUETOOTH))
.thenReturn(new int[]{BLUETOOTH_ENERGY_CONSUMER_ID});
- BluetoothPowerStatsProcessor processor =
- new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new BluetoothPowerStatsProcessor(mStatsRule.getPowerProfile()));
BluetoothPowerStatsCollector collector = new BluetoothPowerStatsCollector(mInjector);
collector.setEnabled(true);
@@ -382,6 +381,8 @@ public class BluetoothPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getConsumedEnergyUws(
new int[]{BLUETOOTH_ENERGY_CONSUMER_ID})).thenReturn(new long[]{0});
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -408,7 +409,7 @@ public class BluetoothPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
BluetoothPowerStatsLayout statsLayout =
new BluetoothPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -466,13 +467,13 @@ public class BluetoothPowerStatsProcessorTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- BluetoothPowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig.PowerComponent config =
new AggregatedPowerStatsConfig.PowerComponent(
BatteryConsumer.POWER_COMPONENT_BLUETOOTH)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
PowerComponentAggregatedPowerStats aggregatedStats =
new PowerComponentAggregatedPowerStats(
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/CameraPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/CameraPowerStatsTest.java
index efbd1b7f42fd..88a4f5e7891e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/CameraPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/CameraPowerStatsTest.java
@@ -54,6 +54,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.IntSupplier;
+import java.util.function.Supplier;
public class CameraPowerStatsTest {
@Rule(order = 0)
@@ -123,44 +124,41 @@ public class CameraPowerStatsTest {
.getEnergyConsumerIds(eq((int) EnergyConsumerType.CAMERA), any()))
.thenReturn(new int[]{ENERGY_CONSUMER_ID});
- CameraPowerStatsProcessor processor = new CameraPowerStatsProcessor(
- mStatsRule.getPowerProfile(), mUidResolver);
-
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new CameraPowerStatsProcessor(mStatsRule.getPowerProfile(), mUidResolver));
CameraPowerStatsCollector collector = new CameraPowerStatsCollector(mInjector);
collector.addConsumer(
- powerStats -> {
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
- });
+ powerStats -> stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime()));
collector.setEnabled(true);
// Establish a baseline
+ stats.start(0);
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 10000));
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1));
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 2_170_000));
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2));
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2));
mStatsRule.setTime(11_000, 11_000);
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 3_610_000));
collector.collectAndDeliverStats();
- processor.finish(stats, 11_000);
+ stats.finish(11_000);
PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
@@ -244,7 +242,7 @@ public class CameraPowerStatsTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- BinaryStatePowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CAMERA)
.trackDeviceStates(
@@ -254,12 +252,12 @@ public class CameraPowerStatsTest {
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
AggregatedPowerStats aggregatedPowerStats = new AggregatedPowerStats(config);
PowerComponentAggregatedPowerStats powerComponentStats =
aggregatedPowerStats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_CAMERA);
- processor.start(powerComponentStats, 0);
+ powerComponentStats.start(0);
powerComponentStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
powerComponentStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/CpuPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/CpuPowerStatsProcessorTest.java
index b6b759e8f0af..ab2e631453ef 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/CpuPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/CpuPowerStatsProcessorTest.java
@@ -78,22 +78,22 @@ public class CpuPowerStatsProcessorTest {
.setCpuPowerBracket(2, 0, 2);
private AggregatedPowerStatsConfig.PowerComponent mConfig;
- private CpuPowerStatsProcessor mProcessor;
private MockPowerComponentAggregatedPowerStats mStats;
@Before
public void setup() {
mConfig = new AggregatedPowerStatsConfig.PowerComponent(BatteryConsumer.POWER_COMPONENT_CPU)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
- .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE);
-
- mProcessor = new CpuPowerStatsProcessor(
- mStatsRule.getPowerProfile(), mStatsRule.getCpuScalingPolicies());
+ .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
+ .setProcessorSupplier(() -> new CpuPowerStatsProcessor(mStatsRule.getPowerProfile(),
+ mStatsRule.getCpuScalingPolicies()));
}
@Test
public void powerProfileModel() {
mStats = new MockPowerComponentAggregatedPowerStats(mConfig, false);
+ mStats.start(0);
+
mStats.setDeviceStats(
states(POWER_STATE_BATTERY, SCREEN_STATE_ON),
concat(
@@ -128,7 +128,7 @@ public class CpuPowerStatsProcessorTest {
states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED),
values(1500, 2000, 1000), 1.252578);
- mProcessor.finish(mStats, 10_000);
+ mStats.finish(10_000);
mStats.verifyPowerEstimates();
}
@@ -136,6 +136,8 @@ public class CpuPowerStatsProcessorTest {
@Test
public void energyConsumerModel() {
mStats = new MockPowerComponentAggregatedPowerStats(mConfig, true);
+ mStats.start(0);
+
mStats.setDeviceStats(
states(POWER_STATE_BATTERY, SCREEN_STATE_ON),
concat(
@@ -173,7 +175,7 @@ public class CpuPowerStatsProcessorTest {
states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED),
values(1500, 2000, 1000), 0.80773);
- mProcessor.finish(mStats, 10_000);
+ mStats.finish(10_000);
mStats.verifyPowerEstimates();
}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/CustomEnergyConsumerPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/CustomEnergyConsumerPowerStatsTest.java
index 1621d47d62b5..8239fdbd04e9 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/CustomEnergyConsumerPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/CustomEnergyConsumerPowerStatsTest.java
@@ -157,6 +157,7 @@ public class CustomEnergyConsumerPowerStatsTest {
@Test
public void processStats() throws Exception {
AggregatedPowerStats aggregatedPowerStats = createAggregatedPowerStats();
+ aggregatedPowerStats.start(0);
aggregatedPowerStats.setDeviceState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedPowerStats.setDeviceState(STATE_SCREEN, SCREEN_STATE_ON, 0);
aggregatedPowerStats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND,
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/GnssPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/GnssPowerStatsTest.java
index 774be897692a..127ab8a6e549 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/GnssPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/GnssPowerStatsTest.java
@@ -55,6 +55,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.IntSupplier;
+import java.util.function.Supplier;
public class GnssPowerStatsTest {
@Rule(order = 0)
@@ -126,41 +127,38 @@ public class GnssPowerStatsTest {
.getEnergyConsumerIds(eq((int) EnergyConsumerType.GNSS), any()))
.thenReturn(new int[0]);
- GnssPowerStatsProcessor processor = new GnssPowerStatsProcessor(
- mStatsRule.getPowerProfile(), mUidResolver);
-
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new GnssPowerStatsProcessor(mStatsRule.getPowerProfile(), mUidResolver));
+ stats.start(0);
GnssPowerStatsCollector collector = new GnssPowerStatsCollector(mInjector);
collector.addConsumer(
- powerStats -> {
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
- });
+ powerStats -> stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime()));
collector.setEnabled(true);
// Establish a baseline
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1));
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2));
- processor.noteStateChange(stats, buildHistoryItem(7000,
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2));
+ stats.noteStateChange(buildHistoryItem(7000,
GnssSignalQuality.GNSS_SIGNAL_QUALITY_GOOD));
- processor.noteStateChange(stats, buildHistoryItem(8000,
+ stats.noteStateChange(buildHistoryItem(8000,
GnssSignalQuality.GNSS_SIGNAL_QUALITY_POOR));
mStatsRule.setTime(11_000, 11_000);
collector.collectAndDeliverStats();
- processor.finish(stats, 11_000);
+ stats.finish(11_000);
PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
@@ -217,47 +215,46 @@ public class GnssPowerStatsTest {
when(mConsumedEnergyRetriever
.getEnergyConsumerIds(eq((int) EnergyConsumerType.GNSS), any()))
.thenReturn(new int[]{ENERGY_CONSUMER_ID});
- GnssPowerStatsProcessor processor = new GnssPowerStatsProcessor(
- mStatsRule.getPowerProfile(), mUidResolver);
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new GnssPowerStatsProcessor(mStatsRule.getPowerProfile(), mUidResolver));
GnssPowerStatsCollector collector = new GnssPowerStatsCollector(mInjector);
collector.addConsumer(
- powerStats -> {
- processor.addPowerStats(stats, powerStats, mMonotonicClock.monotonicTime());
- });
+ powerStats -> stats.addPowerStats(powerStats, mMonotonicClock.monotonicTime()));
collector.setEnabled(true);
+ stats.start(0);
+
// Establish a baseline
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 10000));
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1));
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 2_170_000));
collector.collectAndDeliverStats();
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2));
- processor.noteStateChange(stats, buildHistoryItem(7000,
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2));
+ stats.noteStateChange(buildHistoryItem(7000,
GnssSignalQuality.GNSS_SIGNAL_QUALITY_GOOD));
- processor.noteStateChange(stats, buildHistoryItem(8000,
+ stats.noteStateChange(buildHistoryItem(8000,
GnssSignalQuality.GNSS_SIGNAL_QUALITY_POOR));
mStatsRule.setTime(11_000, 11_000);
when(mConsumedEnergyRetriever.getConsumedEnergy(new int[]{ENERGY_CONSUMER_ID}))
.thenReturn(createEnergyConsumerResults(ENERGY_CONSUMER_ID, 3_610_000));
collector.collectAndDeliverStats();
- processor.finish(stats, 11_000);
+ stats.finish(11_000);
PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
@@ -350,7 +347,7 @@ public class GnssPowerStatsTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- BinaryStatePowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_GNSS)
.trackDeviceStates(
@@ -360,12 +357,12 @@ public class GnssPowerStatsTest {
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
AggregatedPowerStats aggregatedPowerStats = new AggregatedPowerStats(config);
PowerComponentAggregatedPowerStats powerComponentStats =
aggregatedPowerStats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_GNSS);
- processor.start(powerComponentStats, 0);
+ powerComponentStats.start(0);
powerComponentStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
powerComponentStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/MobileRadioPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/MobileRadioPowerStatsProcessorTest.java
index d7024e5e45fe..89d59a9be14f 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/MobileRadioPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/MobileRadioPowerStatsProcessorTest.java
@@ -172,15 +172,13 @@ public class MobileRadioPowerStatsProcessorTest {
mStatsRule.setTestPowerProfile("power_profile_test_modem_calculator");
- MobileRadioPowerStatsProcessor processor =
- new MobileRadioPowerStatsProcessor(mStatsRule.getPowerProfile());
-
AggregatedPowerStatsConfig.PowerComponent config =
new AggregatedPowerStatsConfig.PowerComponent(
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(() -> new MobileRadioPowerStatsProcessor(
+ mStatsRule.getPowerProfile()));
PowerComponentAggregatedPowerStats aggregatedStats =
new PowerComponentAggregatedPowerStats(
@@ -198,6 +196,8 @@ public class MobileRadioPowerStatsProcessorTest {
// Initial empty ModemActivityInfo.
mockModemActivityInfo(new ModemActivityInfo(0L, 0L, 0L, new int[5], 0L));
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -229,7 +229,7 @@ public class MobileRadioPowerStatsProcessorTest {
aggregatedStats.addPowerStats(powerStats, 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
MobileRadioPowerStatsLayout statsLayout =
new MobileRadioPowerStatsLayout(
@@ -412,15 +412,13 @@ public class MobileRadioPowerStatsProcessorTest {
mStatsRule.setTestPowerProfile("power_profile_test_legacy_modem")
.initMeasuredEnergyStatsLocked();
- MobileRadioPowerStatsProcessor processor =
- new MobileRadioPowerStatsProcessor(mStatsRule.getPowerProfile());
-
AggregatedPowerStatsConfig.PowerComponent config =
new AggregatedPowerStatsConfig.PowerComponent(
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(() -> new MobileRadioPowerStatsProcessor(
+ mStatsRule.getPowerProfile()));
PowerComponentAggregatedPowerStats aggregatedStats =
new PowerComponentAggregatedPowerStats(
@@ -442,6 +440,8 @@ public class MobileRadioPowerStatsProcessorTest {
new int[]{MOBILE_RADIO_ENERGY_CONSUMER_ID}))
.thenReturn(new long[]{0});
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -477,7 +477,7 @@ public class MobileRadioPowerStatsProcessorTest {
aggregatedStats.addPowerStats(powerStats, 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
return aggregatedStats;
}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/PhoneCallPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/PhoneCallPowerStatsProcessorTest.java
index c2681106a28c..cb1bcfe2cb2b 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/PhoneCallPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/PhoneCallPowerStatsProcessorTest.java
@@ -156,20 +156,16 @@ public class PhoneCallPowerStatsProcessorTest {
@Test
public void copyEstimatesFromMobileRadioPowerStats() {
- MobileRadioPowerStatsProcessor mobileStatsProcessor =
- new MobileRadioPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PhoneCallPowerStatsProcessor phoneStatsProcessor =
- new PhoneCallPowerStatsProcessor();
AggregatedPowerStatsConfig aggregatedPowerStatsConfig = new AggregatedPowerStatsConfig();
aggregatedPowerStatsConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(mobileStatsProcessor);
+ .setProcessorSupplier(
+ () -> new MobileRadioPowerStatsProcessor(mStatsRule.getPowerProfile()));
aggregatedPowerStatsConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_PHONE,
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)
- .setProcessor(phoneStatsProcessor);
+ .setProcessorSupplier(PhoneCallPowerStatsProcessor::new);
AggregatedPowerStats aggregatedPowerStats =
new AggregatedPowerStats(aggregatedPowerStatsConfig);
@@ -177,6 +173,8 @@ public class PhoneCallPowerStatsProcessorTest {
aggregatedPowerStats.getPowerComponentStats(
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO);
+ aggregatedPowerStats.start(0);
+
aggregatedPowerStats.setDeviceState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedPowerStats.setDeviceState(STATE_SCREEN, SCREEN_STATE_ON, 0);
@@ -204,11 +202,11 @@ public class PhoneCallPowerStatsProcessorTest {
aggregatedPowerStats.addPowerStats(collector.collectStats(), 10_000);
- mobileStatsProcessor.finish(mobileRadioStats, 10_000);
+ mobileRadioStats.finish(10_000);
PowerComponentAggregatedPowerStats stats =
aggregatedPowerStats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_PHONE);
- phoneStatsProcessor.finish(stats, 10_000);
+ stats.finish(10_000);
PowerStatsLayout statsLayout =
new PowerStatsLayout(stats.getPowerStatsDescriptor());
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/PowerStatsExporterTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/PowerStatsExporterTest.java
index 1f5fba6dd410..96203a5b6f47 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/PowerStatsExporterTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/PowerStatsExporterTest.java
@@ -96,8 +96,8 @@ public class PowerStatsExporterTest {
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(
- new CpuPowerStatsProcessor(mStatsRule.getPowerProfile(),
+ .setProcessorSupplier(
+ () -> new CpuPowerStatsProcessor(mStatsRule.getPowerProfile(),
mStatsRule.getCpuScalingPolicies()));
config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new)
.trackDeviceStates(
@@ -508,9 +508,8 @@ public class PowerStatsExporterTest {
mCpuStatsArrayLayout.setUidTimeByPowerBracket(uidStats2, 0, 2469);
mHistory.recordPowerStats(3000, 3000, powerStats);
- mPowerStatsAggregator.aggregatePowerStats(0, 3500, stats -> {
- mPowerStatsStore.storeAggregatedPowerStats(stats);
- });
+ mPowerStatsAggregator.aggregatePowerStats(0, 3500,
+ stats -> mPowerStatsStore.storeAggregatedPowerStats(stats));
mHistory.recordProcessStateChange(4000, 4000, APP_UID1,
BatteryConsumer.PROCESS_STATE_BACKGROUND);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/ScreenPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/ScreenPowerStatsProcessorTest.java
index c05a91062368..94f5662a032f 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/ScreenPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/ScreenPowerStatsProcessorTest.java
@@ -49,6 +49,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.function.IntSupplier;
+import java.util.function.Supplier;
public class ScreenPowerStatsProcessorTest {
@@ -167,10 +168,8 @@ public class ScreenPowerStatsProcessorTest {
private PowerComponentAggregatedPowerStats collectAndAggregatePowerStats(
boolean energyConsumer) {
- ScreenPowerStatsProcessor processor =
- new ScreenPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new ScreenPowerStatsProcessor(mStatsRule.getPowerProfile()));
ScreenPowerStatsCollector collector = new ScreenPowerStatsCollector(mInjector);
collector.setEnabled(true);
@@ -194,6 +193,8 @@ public class ScreenPowerStatsProcessorTest {
}).when(mScreenUsageTimeRetriever).retrieveTopActivityTimes(any(
ScreenPowerStatsCollector.ScreenUsageTimeRetriever.Callback.class));
+ aggregatedStats.start(0);
+
aggregatedStats.addPowerStats(collector.collectStats(), 1000);
if (energyConsumer) {
@@ -236,18 +237,18 @@ public class ScreenPowerStatsProcessorTest {
// between state changes and power stats collection
aggregatedStats.addPowerStats(collector.collectStats(), 612_000);
- aggregatedStats.getConfig().getProcessor().finish(aggregatedStats, 180_000);
+ aggregatedStats.finish(180_000);
return aggregatedStats;
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- ScreenPowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig.PowerComponent config =
new AggregatedPowerStatsConfig.PowerComponent(
BatteryConsumer.POWER_COMPONENT_SCREEN)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
PowerComponentAggregatedPowerStats aggregatedStats =
new PowerComponentAggregatedPowerStats(
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/SensorPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/SensorPowerStatsProcessorTest.java
index 7000487e7912..687d70be74f4 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/SensorPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/SensorPowerStatsProcessorTest.java
@@ -51,6 +51,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.List;
+import java.util.function.Supplier;
public class SensorPowerStatsProcessorTest {
@Rule(order = 0)
@@ -90,23 +91,22 @@ public class SensorPowerStatsProcessorTest {
@Test
public void testPowerEstimation() {
- SensorPowerStatsProcessor processor = new SensorPowerStatsProcessor(() -> mSensorManager);
+ PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
+ () -> new SensorPowerStatsProcessor(() -> mSensorManager));
- PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(processor);
-
- processor.noteStateChange(stats, buildHistoryItem(0, true, APP_UID1, SENSOR_HANDLE_1));
+ stats.noteStateChange(buildHistoryItem(0, true, APP_UID1, SENSOR_HANDLE_1));
// Turn the screen off after 2.5 seconds
stats.setState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
- processor.noteStateChange(stats, buildHistoryItem(6000, false, APP_UID1, SENSOR_HANDLE_1));
- processor.noteStateChange(stats, buildHistoryItem(7000, true, APP_UID2, SENSOR_HANDLE_1));
- processor.noteStateChange(stats, buildHistoryItem(8000, true, APP_UID2, SENSOR_HANDLE_2));
- processor.noteStateChange(stats, buildHistoryItem(9000, false, APP_UID2, SENSOR_HANDLE_1));
+ stats.noteStateChange(buildHistoryItem(6000, false, APP_UID1, SENSOR_HANDLE_1));
+ stats.noteStateChange(buildHistoryItem(7000, true, APP_UID2, SENSOR_HANDLE_1));
+ stats.noteStateChange(buildHistoryItem(8000, true, APP_UID2, SENSOR_HANDLE_2));
+ stats.noteStateChange(buildHistoryItem(9000, false, APP_UID2, SENSOR_HANDLE_1));
- processor.finish(stats, 10000);
+ stats.finish(10000);
PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
SensorPowerStatsLayout statsLayout = new SensorPowerStatsLayout();
@@ -195,7 +195,7 @@ public class SensorPowerStatsProcessorTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- SensorPowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SENSORS)
.trackDeviceStates(
@@ -205,13 +205,13 @@ public class SensorPowerStatsProcessorTest {
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
AggregatedPowerStats aggregatedPowerStats = new AggregatedPowerStats(config);
PowerComponentAggregatedPowerStats powerComponentStats =
aggregatedPowerStats.getPowerComponentStats(
BatteryConsumer.POWER_COMPONENT_SENSORS);
- processor.start(powerComponentStats, 0);
+ powerComponentStats.start(0);
powerComponentStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
powerComponentStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsProcessorTest.java
index 7ddaefd811ff..11c09bc78ad2 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/WifiPowerStatsProcessorTest.java
@@ -199,10 +199,8 @@ public class WifiPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.WIFI))
.thenReturn(new int[0]);
- WifiPowerStatsProcessor processor =
- new WifiPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new WifiPowerStatsProcessor(mStatsRule.getPowerProfile()));
WifiPowerStatsCollector collector = new WifiPowerStatsCollector(mInjector, null);
collector.setEnabled(true);
@@ -211,6 +209,8 @@ public class WifiPowerStatsProcessorTest {
mockWifiActivityEnergyInfo(new WifiActivityEnergyInfo(0L,
WifiActivityEnergyInfo.STACK_STATE_INVALID, 0L, 0L, 0L, 0L));
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -238,7 +238,7 @@ public class WifiPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
WifiPowerStatsLayout statsLayout =
new WifiPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -311,10 +311,8 @@ public class WifiPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.WIFI))
.thenReturn(new int[] {WIFI_ENERGY_CONSUMER_ID});
- WifiPowerStatsProcessor processor =
- new WifiPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new WifiPowerStatsProcessor(mStatsRule.getPowerProfile()));
WifiPowerStatsCollector collector = new WifiPowerStatsCollector(mInjector, null);
collector.setEnabled(true);
@@ -327,6 +325,8 @@ public class WifiPowerStatsProcessorTest {
new int[]{WIFI_ENERGY_CONSUMER_ID}))
.thenReturn(new long[]{0});
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -359,7 +359,7 @@ public class WifiPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
WifiPowerStatsLayout statsLayout =
new WifiPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -424,14 +424,14 @@ public class WifiPowerStatsProcessorTest {
when(mConsumedEnergyRetriever.getEnergyConsumerIds(EnergyConsumerType.WIFI))
.thenReturn(new int[0]);
- WifiPowerStatsProcessor processor =
- new WifiPowerStatsProcessor(mStatsRule.getPowerProfile());
-
- PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(processor);
+ PowerComponentAggregatedPowerStats aggregatedStats = createAggregatedPowerStats(
+ () -> new WifiPowerStatsProcessor(mStatsRule.getPowerProfile()));
WifiPowerStatsCollector collector = new WifiPowerStatsCollector(mInjector, null);
collector.setEnabled(true);
+ aggregatedStats.start(0);
+
// Establish a baseline
aggregatedStats.addPowerStats(collector.collectStats(), 0);
@@ -458,7 +458,7 @@ public class WifiPowerStatsProcessorTest {
aggregatedStats.addPowerStats(collector.collectStats(), 10_000);
- processor.finish(aggregatedStats, 10_000);
+ aggregatedStats.finish(10_000);
WifiPowerStatsLayout statsLayout =
new WifiPowerStatsLayout(aggregatedStats.getPowerStatsDescriptor());
@@ -524,12 +524,12 @@ public class WifiPowerStatsProcessorTest {
}
private static PowerComponentAggregatedPowerStats createAggregatedPowerStats(
- WifiPowerStatsProcessor processor) {
+ Supplier<PowerStatsProcessor> processorSupplier) {
AggregatedPowerStatsConfig.PowerComponent config =
new AggregatedPowerStatsConfig.PowerComponent(BatteryConsumer.POWER_COMPONENT_WIFI)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
.trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
- .setProcessor(processor);
+ .setProcessorSupplier(processorSupplier);
PowerComponentAggregatedPowerStats aggregatedStats =
new PowerComponentAggregatedPowerStats(