[Battery usage U] For system comsumed power, use device comsumed power directly instead of removing app comsumed power from it.

Bug: 261826748
Fix: 261826748
Test: manual
Change-Id: Iab6eed4339fabe342835a020cadae11e6256be20
This commit is contained in:
Zaiyue Xue
2022-12-08 18:54:10 +08:00
parent 09d471132d
commit 5474c1849b
3 changed files with 27 additions and 21 deletions

View File

@@ -200,16 +200,13 @@ public class BatteryEntry {
/** Battery entry for a power component of AggregateBatteryConsumer */ /** Battery entry for a power component of AggregateBatteryConsumer */
public BatteryEntry(Context context, int powerComponentId, double devicePowerMah, public BatteryEntry(Context context, int powerComponentId, double devicePowerMah,
double appsPowerMah, long usageDurationMs) { long usageDurationMs) {
mContext = context; mContext = context;
mBatteryConsumer = null; mBatteryConsumer = null;
mUid = Process.INVALID_UID; mUid = Process.INVALID_UID;
mIsHidden = false; mIsHidden = false;
mPowerComponentId = powerComponentId; mPowerComponentId = powerComponentId;
mConsumedPower = mConsumedPower = devicePowerMah;
powerComponentId == BatteryConsumer.POWER_COMPONENT_SCREEN
? devicePowerMah
: devicePowerMah - appsPowerMah;
mUsageDurationMs = usageDurationMs; mUsageDurationMs = usageDurationMs;
mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY; mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
@@ -224,7 +221,7 @@ public class BatteryEntry {
/** Battery entry for a custom power component of AggregateBatteryConsumer */ /** Battery entry for a custom power component of AggregateBatteryConsumer */
public BatteryEntry(Context context, int powerComponentId, String powerComponentName, public BatteryEntry(Context context, int powerComponentId, String powerComponentName,
double devicePowerMah, double appsPowerMah) { double devicePowerMah) {
mContext = context; mContext = context;
mBatteryConsumer = null; mBatteryConsumer = null;
mUid = Process.INVALID_UID; mUid = Process.INVALID_UID;
@@ -234,10 +231,7 @@ public class BatteryEntry {
mIconId = R.drawable.ic_power_system; mIconId = R.drawable.ic_power_system;
mIcon = context.getDrawable(mIconId); mIcon = context.getDrawable(mIconId);
mName = powerComponentName; mName = powerComponentName;
mConsumedPower = mConsumedPower = devicePowerMah;
powerComponentId == BatteryConsumer.POWER_COMPONENT_SCREEN
? devicePowerMah
: devicePowerMah - appsPowerMah;
mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY; mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
} }

View File

@@ -1243,14 +1243,11 @@ public final class DataProcessor {
final BatteryConsumer deviceConsumer = batteryUsageStats.getAggregateBatteryConsumer( final BatteryConsumer deviceConsumer = batteryUsageStats.getAggregateBatteryConsumer(
BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE); BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
final BatteryConsumer appsConsumer = batteryUsageStats.getAggregateBatteryConsumer(
BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_ALL_APPS);
for (int componentId = 0; componentId < BatteryConsumer.POWER_COMPONENT_COUNT; for (int componentId = 0; componentId < BatteryConsumer.POWER_COMPONENT_COUNT;
componentId++) { componentId++) {
results.add(new BatteryEntry(context, componentId, results.add(new BatteryEntry(context, componentId,
deviceConsumer.getConsumedPower(componentId), deviceConsumer.getConsumedPower(componentId),
appsConsumer.getConsumedPower(componentId),
deviceConsumer.getUsageDurationMillis(componentId))); deviceConsumer.getUsageDurationMillis(componentId)));
} }
@@ -1260,8 +1257,7 @@ public final class DataProcessor {
componentId++) { componentId++) {
results.add(new BatteryEntry(context, componentId, results.add(new BatteryEntry(context, componentId,
deviceConsumer.getCustomPowerComponentName(componentId), deviceConsumer.getCustomPowerComponentName(componentId),
deviceConsumer.getConsumedPowerForCustomComponent(componentId), deviceConsumer.getConsumedPowerForCustomComponent(componentId)));
appsConsumer.getConsumedPowerForCustomComponent(componentId)));
} }
final List<UserBatteryConsumer> userBatteryConsumers = final List<UserBatteryConsumer> userBatteryConsumers =

View File

@@ -104,11 +104,19 @@ public class BatteryEntryTest {
} }
private BatteryEntry createAggregateBatteryEntry(int powerComponentId) { private BatteryEntry createAggregateBatteryEntry(int powerComponentId) {
return new BatteryEntry(mMockContext, powerComponentId, 200, 100, 1000); return new BatteryEntry(
mMockContext,
powerComponentId,
/* devicePowerMah= */ 200,
/* usageDurationMs= */ 1000);
} }
private BatteryEntry createCustomAggregateBatteryEntry(int powerComponentId) { private BatteryEntry createCustomAggregateBatteryEntry(int powerComponentId) {
return new BatteryEntry(mMockContext, powerComponentId, "CUSTOM", 200, 100); return new BatteryEntry(
mMockContext,
powerComponentId,
/* powerComponentName= */ "CUSTOM",
/* devicePowerMah= */ 200);
} }
private BatteryEntry createUserBatteryConsumer(int userId) { private BatteryEntry createUserBatteryConsumer(int userId) {
@@ -159,7 +167,9 @@ public class BatteryEntryTest {
@Test @Test
public void batteryEntryForAOD_containCorrectInfo() { public void batteryEntryForAOD_containCorrectInfo() {
final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY, 200, 100, 1000); BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
/* devicePowerMah= */ 200,
/* usageDurationMs= */ 1000);
assertThat(entry.mIconId).isEqualTo(R.drawable.ic_settings_aod); assertThat(entry.mIconId).isEqualTo(R.drawable.ic_settings_aod);
assertThat(entry.mName).isEqualTo("Ambient display"); assertThat(entry.mName).isEqualTo("Ambient display");
@@ -168,7 +178,9 @@ public class BatteryEntryTest {
@Test @Test
public void batteryEntryForCustomComponent_containCorrectInfo() { public void batteryEntryForCustomComponent_containCorrectInfo() {
final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42, "ABC", 200, 100); BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42,
/* powerComponentName= */ "ABC",
/* devicePowerMah= */ 200);
assertThat(entry.mIconId).isEqualTo(R.drawable.ic_power_system); assertThat(entry.mIconId).isEqualTo(R.drawable.ic_power_system);
assertThat(entry.mName).isEqualTo("ABC"); assertThat(entry.mName).isEqualTo("ABC");
@@ -188,7 +200,9 @@ public class BatteryEntryTest {
@Test @Test
public void getTimeInForegroundMs_aggregateBatteryConsumer() { public void getTimeInForegroundMs_aggregateBatteryConsumer() {
final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 10, 20, 100); BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
/* devicePowerMah= */ 10,
/* usageDurationMs= */ 100);
assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L); assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L);
} }
@@ -207,7 +221,9 @@ public class BatteryEntryTest {
@Test @Test
public void getTimeInBackgroundMs_systemConsumer() { public void getTimeInBackgroundMs_systemConsumer() {
final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 100, 200, 1000); BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
/* devicePowerMah= */ 100,
/* usageDurationMs= */ 1000);
assertThat(entry.getTimeInBackgroundMs()).isEqualTo(0); assertThat(entry.getTimeInBackgroundMs()).isEqualTo(0);
} }