Only use PROCESS_STATE_TOP as foreground time.

There are some miscalculations in state FOREGROUND_SERVICE and
FOREGROUND, so we move them out of the foreground time for now.

We will fix it after O and may add them back later.

Bug: 37000096
Test: RunSettingsRoboTests
Change-Id: Ic3f2f7fa69e8a213895c601630d1cca94fd32220
This commit is contained in:
jackqdyulei
2017-05-04 12:38:08 -07:00
parent e5fa4cd4b5
commit 01e690e377
3 changed files with 4 additions and 6 deletions

View File

@@ -100,9 +100,7 @@ public class BatteryUtils {
private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) { private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) {
final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime());
final int foregroundTypes[] = {BatteryStats.Uid.PROCESS_STATE_TOP, final int foregroundTypes[] = {BatteryStats.Uid.PROCESS_STATE_TOP};
BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE,
BatteryStats.Uid.PROCESS_STATE_FOREGROUND};
Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid()));
long timeUs = 0; long timeUs = 0;

View File

@@ -137,7 +137,7 @@ public class AdvancedPowerUsageDetailTest {
doReturn(BACKGROUND_TIME_US).when(mUid).getProcessStateTime( doReturn(BACKGROUND_TIME_US).when(mUid).getProcessStateTime(
eq(BatteryStats.Uid.PROCESS_STATE_BACKGROUND), anyLong(), anyInt()); eq(BatteryStats.Uid.PROCESS_STATE_BACKGROUND), anyLong(), anyInt());
doReturn(FOREGROUND_TIME_US).when(mUid).getProcessStateTime( doReturn(FOREGROUND_TIME_US).when(mUid).getProcessStateTime(
eq(BatteryStats.Uid.PROCESS_STATE_FOREGROUND), anyLong(), anyInt()); eq(BatteryStats.Uid.PROCESS_STATE_TOP), anyLong(), anyInt());
ReflectionHelpers.setField(mBatteryEntry, "sipper", mBatterySipper); ReflectionHelpers.setField(mBatteryEntry, "sipper", mBatterySipper);
mBatteryEntry.iconId = ICON_ID; mBatteryEntry.iconId = ICON_ID;
mBatterySipper.uidObj = mUid; mBatterySipper.uidObj = mUid;

View File

@@ -64,9 +64,9 @@ public class BatteryUtilsTest {
private static final long TIME_STATE_BACKGROUND = 6000 * UNIT; private static final long TIME_STATE_BACKGROUND = 6000 * UNIT;
private static final int UID = 123; private static final int UID = 123;
private static final long TIME_EXPECTED_FOREGROUND = 6500; private static final long TIME_EXPECTED_FOREGROUND = 1500;
private static final long TIME_EXPECTED_BACKGROUND = 6000; private static final long TIME_EXPECTED_BACKGROUND = 6000;
private static final long TIME_EXPECTED_ALL = 12500; private static final long TIME_EXPECTED_ALL = 7500;
private static final double BATTERY_SCREEN_USAGE = 300; private static final double BATTERY_SCREEN_USAGE = 300;
private static final double BATTERY_SYSTEM_USAGE = 600; private static final double BATTERY_SYSTEM_USAGE = 600;
private static final double BATTERY_OVERACCOUNTED_USAGE = 500; private static final double BATTERY_OVERACCOUNTED_USAGE = 500;