summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/os/LongArrayMultiStateCounter.java9
-rw-r--r--core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java20
-rw-r--r--core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp25
-rw-r--r--core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java2
-rw-r--r--core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java2
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryStatsImpl.java14
-rw-r--r--services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java10
-rw-r--r--services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java35
-rw-r--r--services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java4
-rw-r--r--services/core/java/com/android/server/power/stats/processor/MultiStateStats.java29
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java15
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java35
-rw-r--r--services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java10
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java4
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java16
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java21
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java4
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java11
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java31
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java6
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java4
28 files changed, 200 insertions, 121 deletions
diff --git a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
index fe616e085488..5e9c87a5154a 100644
--- a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
+++ b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java
@@ -16,6 +16,7 @@
package com.android.internal.os;
+import android.annotation.CheckResult;
import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
@@ -196,7 +197,8 @@ public final class LongArrayMultiStateCounter implements Parcelable {
/**
* Populates the array with the accumulated counts for the specified state.
*/
- public void getCounts(long[] counts, int state) {
+ @CheckResult
+ public boolean getCounts(long[] counts, int state) {
if (state < 0 || state >= mStateCount) {
throw new IllegalArgumentException(
"State: " + state + ", outside the range: [0-" + mStateCount + "]");
@@ -205,7 +207,7 @@ public final class LongArrayMultiStateCounter implements Parcelable {
throw new IllegalArgumentException(
"Invalid array length: " + counts.length + ", expected: " + mLength);
}
- native_getCounts(mNativeObject, counts, state);
+ return native_getCounts(mNativeObject, counts, state);
}
@Override
@@ -282,7 +284,8 @@ public final class LongArrayMultiStateCounter implements Parcelable {
@FastNative
@RavenwoodRedirect
- private static native void native_getCounts(long nativeObject, long[] counts, int state);
+ @CheckResult
+ private static native boolean native_getCounts(long nativeObject, long[] counts, int state);
@FastNative
@RavenwoodRedirect
diff --git a/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java b/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
index 4f5f37d0640e..403e8c1be8fa 100644
--- a/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
+++ b/core/java/com/android/internal/os/LongArrayMultiStateCounter_ravenwood.java
@@ -168,8 +168,20 @@ class LongArrayMultiStateCounter_ravenwood {
}
}
- public void getValues(long[] values, int state) {
- System.arraycopy(mStates[state].mCounter, 0, values, 0, mArrayLength);
+ public boolean getValues(long[] values, int state) {
+ long[] counts = mStates[state].mCounter;
+ boolean allZeros = true;
+ for (int i = 0; i < counts.length; i++) {
+ if (counts[i] != 0) {
+ allZeros = false;
+ break;
+ }
+ }
+ if (allZeros) {
+ return false;
+ }
+ System.arraycopy(counts, 0, values, 0, mArrayLength);
+ return true;
}
public void reset() {
@@ -316,8 +328,8 @@ class LongArrayMultiStateCounter_ravenwood {
getInstance(instanceId).addCounts(counts);
}
- public static void native_getCounts(long instanceId, long[] counts, int state) {
- getInstance(instanceId).getValues(counts, state);
+ public static boolean native_getCounts(long instanceId, long[] counts, int state) {
+ return getInstance(instanceId).getValues(counts, state);
}
public static void native_reset(long instanceId) {
diff --git a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
index 8f36ecb8b01a..7d94ef85f51a 100644
--- a/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
+++ b/core/jni/com_android_internal_os_LongArrayMultiStateCounter.cpp
@@ -116,17 +116,26 @@ static void native_reset(jlong nativePtr) {
counter->reset();
}
-static void native_getCounts(JNIEnv *env, jclass, jlong nativePtr, jlongArray values, jint state) {
+static bool native_getCounts(JNIEnv *env, jclass, jlong nativePtr, jlongArray values, jint state) {
auto *counter = reinterpret_cast<LongArrayMultiStateCounter *>(nativePtr);
- ScopedLongArrayRW scopedArray(env, values);
auto *data = counter->getCount(state).data();
- auto size = env->GetArrayLength(values);
- auto *outData = scopedArray.get();
if (data == nullptr) {
- memset(outData, 0, size * sizeof(uint64_t));
- } else {
- memcpy(outData, data, size * sizeof(uint64_t));
+ return false;
+ }
+ auto size = env->GetArrayLength(values);
+ bool allZeros = true;
+ for (int i = 0; i < size; i++) {
+ if (data[i]) {
+ allZeros = false;
+ break;
+ }
}
+ if (allZeros) {
+ return false;
+ }
+ ScopedLongArrayRW scopedArray(env, values);
+ memcpy(scopedArray.get(), data, size * sizeof(uint64_t));
+ return true;
}
static jobject native_toString(JNIEnv *env, jclass, jlong nativePtr) {
@@ -255,7 +264,7 @@ static const JNINativeMethod g_LongArrayMultiStateCounter_methods[] = {
// @CriticalNative
{"native_reset", "(J)V", (void *)native_reset},
// @FastNative
- {"native_getCounts", "(J[JI)V", (void *)native_getCounts},
+ {"native_getCounts", "(J[JI)Z", (void *)native_getCounts},
// @FastNative
{"native_toString", "(J)Ljava/lang/String;", (void *)native_toString},
// @FastNative
diff --git a/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java b/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
index 3239598eccdc..0ba2d851feb9 100644
--- a/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/KernelSingleUidTimeReaderTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import android.annotation.SuppressLint;
import android.platform.test.annotations.IgnoreUnderRavenwood;
import android.platform.test.ravenwood.RavenwoodRule;
import android.util.SparseArray;
@@ -287,6 +288,7 @@ public class KernelSingleUidTimeReaderTest {
0, lastUidCpuTimes.size());
}
+ @SuppressLint("CheckResult")
@Test
public void testAddDeltaFromBpf() {
LongArrayMultiStateCounter counter = new LongArrayMultiStateCounter(2, 5);
diff --git a/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java b/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
index 7e5d0a4c2e42..959e121aae9e 100644
--- a/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/LongArrayMultiStateCounterTest.java
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
+import android.annotation.SuppressLint;
import android.os.BadParcelableException;
import android.os.Parcel;
import android.platform.test.ravenwood.RavenwoodRule;
@@ -176,6 +177,7 @@ public class LongArrayMultiStateCounterTest {
assertCounts(newCounter, 0, new long[]{116, 232, 364, 528});
}
+ @SuppressLint("CheckResult")
private void assertCounts(LongArrayMultiStateCounter counter, int state, long[] expected) {
long[] counts = new long[expected.length];
counter.getCounts(counts, state);
diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
index 1d62087428d8..2cf6b7efcb48 100644
--- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
+++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
@@ -2911,19 +2911,7 @@ public class BatteryStatsImpl extends BatteryStats {
return false;
}
- mCounter.getCounts(counts, procState);
-
- // Return counts only if at least one of the elements is non-zero.
- for (int i = counts.length - 1; i >= 0; --i) {
- if (counts[i] != 0) {
- return true;
- }
- }
- return false;
- }
-
- public void logState(Printer pw, String prefix) {
- pw.println(prefix + "mCounter=" + mCounter);
+ return mCounter.getCounts(counts, procState);
}
/**
diff --git a/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
index 5f93bdf07f47..a550f2d820a9 100644
--- a/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessor.java
@@ -68,11 +68,15 @@ class AmbientDisplayPowerStatsProcessor extends PowerStatsProcessor {
// processor. All that remains to be done is copy the estimates over.
MultiStateStats.States.forEachTrackedStateCombination(deviceStateConfig,
states -> {
- screenStats.getDeviceStats(mTmpScreenStats, states);
+ if (!screenStats.getDeviceStats(mTmpScreenStats, states)) {
+ return;
+ }
double power =
mScreenPowerStatsLayout.getScreenDozePowerEstimate(mTmpScreenStats);
- mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, power);
- stats.setDeviceStats(states, mTmpDeviceStats);
+ if (power != 0) {
+ mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, power);
+ stats.setDeviceStats(states, mTmpDeviceStats);
+ }
});
}
}
diff --git a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
index 6ce2cf738192..b67f0648be50 100644
--- a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
@@ -404,7 +404,10 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
deviceStatsIntermediates.timeByBracket = new long[powerBracketCount];
deviceStatsIntermediates.powerByBracket = new double[powerBracketCount];
- stats.getDeviceStats(mTmpDeviceStatsArray, deviceStateEstimation.stateValues);
+ if (!stats.getDeviceStats(mTmpDeviceStatsArray, deviceStateEstimation.stateValues)) {
+ continue;
+ }
+
for (int step = 0; step < cpuScalingStepCount; step++) {
if (intermediates.timeByScalingStep[step] == 0) {
continue;
@@ -429,16 +432,19 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
}
if (wakelockStats != null) {
- wakelockStats.getDeviceStats(mTmpWakelockDeviceStats,
- deviceStateEstimation.stateValues);
- double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate(
- mTmpWakelockDeviceStats);
- power = Math.max(0, power - wakelockPowerEstimate);
+ if (wakelockStats.getDeviceStats(mTmpWakelockDeviceStats,
+ deviceStateEstimation.stateValues)) {
+ double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate(
+ mTmpWakelockDeviceStats);
+ power = Math.max(0, power - wakelockPowerEstimate);
+ }
}
- deviceStatsIntermediates.power = power;
- mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
- stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray);
+ if (power != 0) {
+ deviceStatsIntermediates.power = power;
+ mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
+ stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray);
+ }
}
}
@@ -538,11 +544,12 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
}
if (wakelockStats != null) {
- wakelockStats.getUidStats(mTmpWakelockUidStats, uid,
- proportionalEstimate.stateValues);
- double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate(
- mTmpWakelockUidStats);
- power = Math.max(0, power - wakelockPowerEstimate);
+ if (wakelockStats.getUidStats(mTmpWakelockUidStats, uid,
+ proportionalEstimate.stateValues)) {
+ double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate(
+ mTmpWakelockUidStats);
+ power = Math.max(0, power - wakelockPowerEstimate);
+ }
}
if (power != 0) {
diff --git a/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
index a544daad82f1..5883505326ad 100644
--- a/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessor.java
@@ -259,7 +259,9 @@ class MobileRadioPowerStatsProcessor extends PowerStatsProcessor {
stats.forEachStateStatsKey(key -> {
RxTxPowerEstimators estimators = mRxTxPowerEstimators.get(key);
- stats.getStateStats(mTmpStateStatsArray, key, deviceStates);
+ if (!stats.getStateStats(mTmpStateStatsArray, key, deviceStates)) {
+ return;
+ }
long rxTime = mStatsLayout.getStateRxTime(mTmpStateStatsArray);
intermediates.rxPower += estimators.mRxPowerEstimator.calculatePower(rxTime);
for (int txLevel = 0; txLevel < ModemActivityInfo.getNumTxPowerLevels(); txLevel++) {
diff --git a/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java b/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
index 69325757c79d..0038943d7cf8 100644
--- a/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/MultiStateStats.java
@@ -16,6 +16,7 @@
package com.android.server.power.stats.processor;
+import android.annotation.CheckResult;
import android.annotation.Nullable;
import android.util.Slog;
@@ -342,10 +343,12 @@ class MultiStateStats {
}
/**
- * Returns accumulated stats for the specified composite state.
+ * Returns accumulated stats for the specified composite state or false if the results are
+ * all zeros.
*/
- void getStats(long[] outValues, int[] states) {
- mCounter.getCounts(outValues, mFactory.getSerialState(states));
+ @CheckResult
+ boolean getStats(long[] outValues, int[] states) {
+ return mCounter.getCounts(outValues, mFactory.getSerialState(states));
}
/**
@@ -389,15 +392,7 @@ class MultiStateStats {
private void writeXmlForStates(TypedXmlSerializer serializer, int[] states, long[] values)
throws IOException {
- mCounter.getCounts(values, mFactory.getSerialState(states));
- boolean nonZero = false;
- for (long value : values) {
- if (value != 0) {
- nonZero = true;
- break;
- }
- }
- if (!nonZero) {
+ if (!mCounter.getCounts(values, mFactory.getSerialState(states))) {
return;
}
@@ -470,15 +465,7 @@ class MultiStateStats {
StringBuilder sb = new StringBuilder();
long[] values = new long[mCounter.getArrayLength()];
States.forEachTrackedStateCombination(mFactory.mStates, states -> {
- mCounter.getCounts(values, mFactory.getSerialState(states));
- boolean nonZero = false;
- for (long value : values) {
- if (value != 0) {
- nonZero = true;
- break;
- }
- }
- if (!nonZero) {
+ if (!mCounter.getCounts(values, mFactory.getSerialState(states))) {
return;
}
diff --git a/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
index 3957ae0862dc..ad628e4632e1 100644
--- a/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessor.java
@@ -69,12 +69,15 @@ class PhoneCallPowerStatsProcessor extends PowerStatsProcessor {
// processor. All that remains to be done is copy the estimates over.
MultiStateStats.States.forEachTrackedStateCombination(deviceStateConfig,
states -> {
- mobileRadioStats.getDeviceStats(mTmpMobileRadioDeviceStats, states);
- double callPowerEstimate =
- mMobileRadioStatsLayout.getDeviceCallPowerEstimate(
- mTmpMobileRadioDeviceStats);
- mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, callPowerEstimate);
- stats.setDeviceStats(states, mTmpDeviceStats);
+ if (!mobileRadioStats.getDeviceStats(mTmpMobileRadioDeviceStats, states)) {
+ return;
+ }
+ double callPowerEstimate = mMobileRadioStatsLayout.getDeviceCallPowerEstimate(
+ mTmpMobileRadioDeviceStats);
+ if (callPowerEstimate != 0) {
+ mStatsLayout.setDevicePowerEstimate(mTmpDeviceStats, callPowerEstimate);
+ stats.setDeviceStats(states, mTmpDeviceStats);
+ }
});
}
}
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
index f9b9da9171cb..d285a5987710 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
@@ -16,6 +16,7 @@
package com.android.server.power.stats.processor;
+import android.annotation.CheckResult;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.BatteryStats;
@@ -312,6 +313,11 @@ class PowerComponentAggregatedPowerStats {
return uids;
}
+ /**
+ * Populates outValues with the stats for the specified states. If the stats are all 0,
+ * returns false, leaving outValues unchanged.
+ */
+ @CheckResult
boolean getDeviceStats(long[] outValues, int[] deviceStates) {
if (deviceStates.length != mDeviceStateConfig.length) {
throw new IllegalArgumentException(
@@ -319,12 +325,16 @@ class PowerComponentAggregatedPowerStats {
+ " expected: " + mDeviceStateConfig.length);
}
if (mDeviceStats != null) {
- mDeviceStats.getStats(outValues, deviceStates);
- return true;
+ return mDeviceStats.getStats(outValues, deviceStates);
}
return false;
}
+ /**
+ * Populates outValues with the stats for the specified key and device states. If the stats
+ * are all 0, returns false, leaving outValues unchanged.
+ */
+ @CheckResult
boolean getStateStats(long[] outValues, int key, int[] deviceStates) {
if (deviceStates.length != mDeviceStateConfig.length) {
throw new IllegalArgumentException(
@@ -333,8 +343,7 @@ class PowerComponentAggregatedPowerStats {
}
MultiStateStats stateStats = mStateStats.get(key);
if (stateStats != null) {
- stateStats.getStats(outValues, deviceStates);
- return true;
+ return stateStats.getStats(outValues, deviceStates);
}
return false;
}
@@ -345,6 +354,11 @@ class PowerComponentAggregatedPowerStats {
}
}
+ /**
+ * Populates outValues with the stats for the specified UID and UID states. If the stats are
+ * all 0, returns false, leaving outValues unchanged.
+ */
+ @CheckResult
boolean getUidStats(long[] outValues, int uid, int[] uidStates) {
if (uidStates.length != mUidStateConfig.length) {
throw new IllegalArgumentException(
@@ -353,8 +367,7 @@ class PowerComponentAggregatedPowerStats {
}
UidStats uidStats = mUidStats.get(uid);
if (uidStats != null && uidStats.stats != null) {
- uidStats.stats.getStats(outValues, uidStates);
- return true;
+ return uidStats.stats.getStats(outValues, uidStates);
}
return false;
}
@@ -578,15 +591,7 @@ class PowerComponentAggregatedPowerStats {
long[] values = new long[stats.getDimensionCount()];
MultiStateStats.States[] stateInfo = stats.getStates();
MultiStateStats.States.forEachTrackedStateCombination(stateInfo, states -> {
- stats.getStats(values, states);
- boolean nonZero = false;
- for (long value : values) {
- if (value != 0) {
- nonZero = true;
- break;
- }
- }
- if (!nonZero) {
+ if (!stats.getStats(values, states)) {
return;
}
diff --git a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
index ba728d36d561..284e6a9fce89 100644
--- a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
@@ -298,12 +298,16 @@ class SensorPowerStatsProcessor extends PowerStatsProcessor {
continue;
}
- if (!stats.getDeviceStats(mTmpDeviceStatsArray, estimation.stateValues)) {
+ double power = ((Intermediates) estimation.intermediates).power;
+ if (power == 0) {
continue;
}
- mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray,
- ((Intermediates) estimation.intermediates).power);
+ if (!stats.getDeviceStats(mTmpDeviceStatsArray, estimation.stateValues)) {
+ Arrays.fill(mTmpDeviceStatsArray, 0);
+ }
+
+ mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
stats.setDeviceStats(estimation.stateValues, mTmpDeviceStatsArray);
}
}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
index 0e73329dcfe5..978fd1af2636 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AggregatedPowerStatsTest.java
@@ -18,6 +18,7 @@ package com.android.server.power.stats.processor;
import static com.google.common.truth.Truth.assertThat;
+import android.annotation.SuppressLint;
import android.os.BatteryConsumer;
import android.os.PersistableBundle;
import android.util.SparseArray;
@@ -280,6 +281,7 @@ public class AggregatedPowerStatsTest {
.isEqualTo(new long[]{250, 300});
}
+ @SuppressLint("CheckResult")
private static long[] getDeviceStats(
AggregatedPowerStats stats, int powerComponentId,
int... states) {
@@ -290,6 +292,7 @@ public class AggregatedPowerStatsTest {
return out;
}
+ @SuppressLint("CheckResult")
private static long[] getStateStats(
AggregatedPowerStats stats, int key, int... states) {
PowerComponentAggregatedPowerStats powerComponentStats =
@@ -299,6 +302,7 @@ public class AggregatedPowerStatsTest {
return out;
}
+ @SuppressLint("CheckResult")
private static long[] getUidDeviceStats(
AggregatedPowerStats stats, int powerComponentId,
int uid, int... states) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
index 21e615f8c740..58e9d1e26f2c 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/AmbientDisplayPowerStatsProcessorTest.java
@@ -27,6 +27,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.power.stats.EnergyConsumerType;
import android.os.BatteryConsumer;
import android.os.Handler;
@@ -166,6 +167,7 @@ public class AmbientDisplayPowerStatsProcessorTest {
return stats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY);
}
+ @SuppressLint("CheckResult")
private void assertPowerEstimate(
PowerComponentAggregatedPowerStats aggregatedStats,
int powerState, int screenState, double expectedPowerEstimate) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
index cca60339acf7..58784d7b4a25 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
@@ -34,6 +34,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
+import android.annotation.SuppressLint;
import android.os.BatteryConsumer;
import android.os.BatteryUsageStats;
import android.os.Process;
@@ -68,6 +69,7 @@ public class BasePowerStatsProcessorTest {
.setProcessorSupplier(() -> new BasePowerStatsProcessor(() -> 4000));
}
+ @SuppressLint("CheckResult")
@Test
public void processPowerStats() {
AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
@@ -95,9 +97,11 @@ public class BasePowerStatsProcessorTest {
stats.getUidStats(uidStats, APP_UID1,
states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_FOREGROUND_SERVICE));
assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(5000);
- stats.getUidStats(uidStats, APP_UID1,
+ boolean nonZero = stats.getUidStats(uidStats, APP_UID1,
states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
- assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+ if (nonZero) {
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+ }
stats.getUidStats(uidStats, APP_UID2,
states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
@@ -105,11 +109,14 @@ public class BasePowerStatsProcessorTest {
stats.getUidStats(uidStats, APP_UID2,
states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_CACHED));
assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(8500);
- stats.getUidStats(uidStats, APP_UID2,
+ nonZero = stats.getUidStats(uidStats, APP_UID2,
states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
- assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+ if (nonZero) {
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+ }
}
+ @SuppressLint("CheckResult")
@Test
public void fuelgaugeAvailable() {
AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
@@ -138,6 +145,7 @@ public class BasePowerStatsProcessorTest {
assertThat(dischargeDuration).isWithin(5).of(6000);
}
+ @SuppressLint("CheckResult")
@Test
public void fuelgaugeUnavailable() {
AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(false);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
index 2ff7dde3255f..e6e7f6e105b7 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BinaryStatePowerStatsProcessorTest.java
@@ -30,6 +30,7 @@ import static com.android.server.power.stats.processor.AggregatedPowerStatsConfi
import static com.google.common.truth.Truth.assertThat;
+import android.annotation.SuppressLint;
import android.os.BatteryConsumer;
import android.os.BatteryStats;
import android.os.PersistableBundle;
@@ -74,6 +75,7 @@ public class BinaryStatePowerStatsProcessorTest {
}
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel() {
BinaryStatePowerStatsLayout statsLayout = new BinaryStatePowerStatsLayout();
@@ -138,12 +140,14 @@ public class BinaryStatePowerStatsProcessorTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(expectedPower2);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
+ @SuppressLint("CheckResult")
@Test
public void energyConsumerModel() {
BinaryStatePowerStatsLayout
@@ -232,10 +236,11 @@ public class BinaryStatePowerStatsProcessorTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(expectedPower2);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
index 60131861ce89..6d7119dc1f0e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
@@ -33,6 +33,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.bluetooth.BluetoothActivityEnergyInfo;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.UidTraffic;
@@ -161,6 +162,7 @@ public class BluetoothPowerStatsProcessorTest {
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(true);
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel_mostlyDataTransfer() {
// No power monitoring hardware
@@ -262,6 +264,7 @@ public class BluetoothPowerStatsProcessorTest {
.isWithin(PRECISION).of(expectedPower2 * 0.75);
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel_mostlyScan() {
// No power monitoring hardware
@@ -361,6 +364,7 @@ public class BluetoothPowerStatsProcessorTest {
.isWithin(PRECISION).of(expectedPower2 * 0.75);
}
+ @SuppressLint("CheckResult")
@Test
public void consumedEnergyModel() {
when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
index 23642de466a1..a95963242d8f 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CameraPowerStatsTest.java
@@ -33,6 +33,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.power.stats.EnergyConsumerResult;
import android.hardware.power.stats.EnergyConsumerType;
import android.os.BatteryConsumer;
@@ -117,6 +118,7 @@ public class CameraPowerStatsTest {
mMonotonicClock = new MonotonicClock(0, mStatsRule.getMockClock());
}
+ @SuppressLint("CheckResult")
@Test
public void energyConsumerModel() {
when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
@@ -211,10 +213,11 @@ public class CameraPowerStatsTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(expectedPower2);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
private BatteryStats.HistoryItem buildHistoryItem(int timestamp, boolean stateOn,
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
index 42baba765276..a421675f1896 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CustomEnergyConsumerPowerStatsTest.java
@@ -33,6 +33,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.power.stats.EnergyConsumerAttribution;
import android.hardware.power.stats.EnergyConsumerResult;
import android.hardware.power.stats.EnergyConsumerType;
@@ -154,6 +155,7 @@ public class CustomEnergyConsumerPowerStatsTest {
.isEqualTo(6000);
}
+ @SuppressLint("CheckResult")
@Test
public void processStats() throws Exception {
AggregatedPowerStats aggregatedPowerStats = createAggregatedPowerStats();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
index c63267ec6ae7..b4f21133f621 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/GnssPowerStatsTest.java
@@ -33,6 +33,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.power.stats.EnergyConsumerResult;
import android.hardware.power.stats.EnergyConsumerType;
import android.location.GnssSignalQuality;
@@ -122,6 +123,7 @@ public class GnssPowerStatsTest {
mHistoryItem.clear();
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel() {
// ODPM unsupported
@@ -206,12 +208,14 @@ public class GnssPowerStatsTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(0.51111);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
+ @SuppressLint("CheckResult")
@Test
public void initialStateGnssOn() {
// ODPM unsupported
@@ -285,12 +289,14 @@ public class GnssPowerStatsTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(0.51111);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
+ @SuppressLint("CheckResult")
@Test
public void energyConsumerModel() {
when(mConsumedEnergyRetriever.getVoltageMv()).thenReturn(VOLTAGE_MV);
@@ -386,10 +392,11 @@ public class GnssPowerStatsTest {
assertThat(statsLayout.getUidPowerEstimate(uidStats))
.isWithin(PRECISION).of(expectedPower2);
- stats.getUidStats(uidStats, APP_UID2,
- states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
- assertThat(statsLayout.getUidPowerEstimate(uidStats))
- .isWithin(PRECISION).of(0);
+ if (stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED))) {
+ assertThat(statsLayout.getUidPowerEstimate(uidStats))
+ .isWithin(PRECISION).of(0);
+ }
}
private BatteryStats.HistoryItem buildHistoryItemInitialStateGpsOn(long timestamp) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
index 6acd36885b1e..3dc401769e7d 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
@@ -39,6 +39,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.power.stats.EnergyConsumerResult;
@@ -170,6 +171,7 @@ public class MobileRadioPowerStatsProcessorTest {
.thenAnswer(invocation -> invocation.getArgument(0));
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel() {
// No power monitoring hardware
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
index 3b614bdb38ed..9abb06f338e3 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MultiStateStatsTest.java
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertWithMessage;
import static org.junit.Assert.assertThrows;
+import android.annotation.SuppressLint;
import android.os.BatteryConsumer;
import androidx.test.filters.SmallTest;
@@ -124,6 +125,7 @@ public class MultiStateStatsTest {
assertThat(e.getMessage()).contains("40");
}
+ @SuppressLint("CheckResult")
@Test
public void multiStateStats_aggregation() {
MultiStateStats.Factory factory = makeFactory(true, true, false);
@@ -159,9 +161,9 @@ public class MultiStateStatsTest {
// (400 - 100) * 0 + (600 - 400) * 0.5
assertThat(stats).isEqualTo(new long[]{100, 100});
- multiStateStats.getStats(stats, new int[]{1, BatteryConsumer.PROCESS_STATE_BACKGROUND, 0});
// Never been in this composite state
- assertThat(stats).isEqualTo(new long[]{0, 0});
+ assertThat(multiStateStats.getStats(stats,
+ new int[]{1, BatteryConsumer.PROCESS_STATE_BACKGROUND, 0})).isFalse();
}
@Test
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
index a20274fb5ded..2f742d74d8e6 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PhoneCallPowerStatsProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.power.stats.EnergyConsumerType;
@@ -159,6 +160,7 @@ public class PhoneCallPowerStatsProcessorTest {
mStatsRule.setTestPowerProfile("power_profile_test_legacy_modem");
}
+ @SuppressLint("CheckResult")
@Test
public void copyEstimatesFromMobileRadioPowerStats() {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
index 185216583f1b..31456a1574d0 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/ScreenPowerStatsProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.power.stats.EnergyConsumerResult;
import android.hardware.power.stats.EnergyConsumerType;
import android.os.BatteryConsumer;
@@ -278,6 +279,7 @@ public class ScreenPowerStatsProcessorTest {
.of(expectedDozePowerEstimate);
}
+ @SuppressLint("CheckResult")
private void assertUidPowerEstimate(
PowerComponentAggregatedPowerStats aggregatedStats, int uid,
int powerState, int screenState, double expectedScreenPowerEstimate) {
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
index d97260455bdd..c2f01d1fa65c 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/SensorPowerStatsProcessorTest.java
@@ -33,6 +33,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.annotation.SuppressLint;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.hardware.input.InputSensorInfo;
@@ -91,6 +92,7 @@ public class SensorPowerStatsProcessorTest {
List.of(sensor1, sensor2, sensor3));
}
+ @SuppressLint("CheckResult")
@Test
public void testPowerEstimation() {
PowerComponentAggregatedPowerStats stats = createAggregatedPowerStats(
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
index 8257d714a5d5..5ac7216194a4 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
@@ -31,6 +31,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
+import android.annotation.SuppressLint;
import android.os.BatteryConsumer;
import android.os.PersistableBundle;
import android.os.Process;
@@ -123,6 +124,7 @@ public class WakelockPowerStatsProcessorTest {
return history;
}
+ @SuppressLint("CheckResult")
private void assertAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats) {
PowerComponentAggregatedPowerStats stats =
aggregatedPowerStats.getPowerComponentStats(POWER_COMPONENT_WAKELOCK);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
index bd92a84fc815..e36056a98c85 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
@@ -39,6 +39,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.annotation.Nullable;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.power.stats.EnergyConsumerResult;
@@ -198,6 +199,7 @@ public class WifiPowerStatsProcessorTest {
mBatteryStats = mStatsRule.getBatteryStats();
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel_powerController() {
when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(true);
@@ -310,6 +312,7 @@ public class WifiPowerStatsProcessorTest {
.isWithin(PRECISION).of(expectedPower2 * 0.75);
}
+ @SuppressLint("CheckResult")
@Test
public void consumedEnergyModel_powerController() {
when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(true);
@@ -424,6 +427,7 @@ public class WifiPowerStatsProcessorTest {
.isWithin(PRECISION).of(expectedPower2 * 0.75);
}
+ @SuppressLint("CheckResult")
@Test
public void powerProfileModel_noPowerController() {
when(mWifiManager.isEnhancedPowerReportingSupported()).thenReturn(false);