Loading services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java +12 −3 Original line number Diff line number Diff line Loading @@ -149,8 +149,7 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat // WiFi keeps an accumulated total of stats. Keep the last WiFi stats so we can compute a delta. // (This is unlike Bluetooth, where BatteryStatsImpl is left responsible for taking the delta.) @GuardedBy("mWorkerLock") private WifiActivityEnergyInfo mLastWifiInfo = new WifiActivityEnergyInfo(0, 0, 0, 0, 0, 0); private WifiActivityEnergyInfo mLastWifiInfo = null; /** * Maps an {@link EnergyConsumerType} to it's corresponding {@link EnergyConsumer#id}s, Loading Loading @@ -827,8 +826,18 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat return null; } /** * Return a delta WifiActivityEnergyInfo from the last WifiActivityEnergyInfo passed to the * method. */ @VisibleForTesting @GuardedBy("mWorkerLock") private WifiActivityEnergyInfo extractDeltaLocked(WifiActivityEnergyInfo latest) { public WifiActivityEnergyInfo extractDeltaLocked(WifiActivityEnergyInfo latest) { if (mLastWifiInfo == null) { // This is the first time WifiActivityEnergyInfo has been collected since system boot. // Use this first WifiActivityEnergyInfo as the starting point for all accumulations. mLastWifiInfo = latest; } final long timePeriodMs = latest.getTimeSinceBootMillis() - mLastWifiInfo.getTimeSinceBootMillis(); final long lastScanMs = mLastWifiInfo.getControllerScanDurationMillis(); Loading services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -15487,7 +15487,8 @@ public class BatteryStatsImpl extends BatteryStats { final long txTimeMs = counter.getTxTimeCounters()[0].getCountLocked(which); final long totalControllerActivityTimeMs = computeBatteryRealtime(mClock.elapsedRealtime() * 1000, which) / 1000; final long sleepTimeMs = totalControllerActivityTimeMs - (idleTimeMs + rxTimeMs + txTimeMs); final long sleepTimeMs = Math.max(0, totalControllerActivityTimeMs - (idleTimeMs + rxTimeMs + txTimeMs)); final long energyConsumedMaMs = counter.getPowerCounter().getCountLocked(which); final long monitoredRailChargeConsumedMaMs = counter.getMonitoredRailChargeConsumedMaMs().getCountLocked(which); services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.hardware.power.stats.PowerEntity; import android.hardware.power.stats.StateResidencyResult; import android.os.Handler; import android.os.Looper; import android.os.connectivity.WifiActivityEnergyInfo; import android.platform.test.ravenwood.RavenwoodRule; import android.power.PowerStatsInternal; import android.util.IntArray; Loading Loading @@ -87,6 +88,33 @@ public class BatteryExternalStatsWorkerTest { new BatteryExternalStatsWorker(new TestInjector(context), batteryStats); } @Test public void testUpdateWifiState() { WifiActivityEnergyInfo firstInfo = new WifiActivityEnergyInfo(1111, WifiActivityEnergyInfo.STACK_STATE_STATE_ACTIVE, 11, 22, 33, 44); WifiActivityEnergyInfo delta = mBatteryExternalStatsWorker.extractDeltaLocked(firstInfo); assertEquals(1111, delta.getTimeSinceBootMillis()); assertEquals(WifiActivityEnergyInfo.STACK_STATE_STATE_ACTIVE, delta.getStackState()); assertEquals(0, delta.getControllerTxDurationMillis()); assertEquals(0, delta.getControllerRxDurationMillis()); assertEquals(0, delta.getControllerScanDurationMillis()); assertEquals(0, delta.getControllerIdleDurationMillis()); WifiActivityEnergyInfo secondInfo = new WifiActivityEnergyInfo(91111, WifiActivityEnergyInfo.STACK_STATE_STATE_IDLE, 811, 722, 633, 544); delta = mBatteryExternalStatsWorker.extractDeltaLocked(secondInfo); assertEquals(91111, delta.getTimeSinceBootMillis()); assertEquals(WifiActivityEnergyInfo.STACK_STATE_STATE_IDLE, delta.getStackState()); assertEquals(800, delta.getControllerTxDurationMillis()); assertEquals(700, delta.getControllerRxDurationMillis()); assertEquals(600, delta.getControllerScanDurationMillis()); assertEquals(500, delta.getControllerIdleDurationMillis()); } @Test public void testTargetedEnergyConsumerQuerying() { final int numCpuClusters = 4; Loading Loading
services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java +12 −3 Original line number Diff line number Diff line Loading @@ -149,8 +149,7 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat // WiFi keeps an accumulated total of stats. Keep the last WiFi stats so we can compute a delta. // (This is unlike Bluetooth, where BatteryStatsImpl is left responsible for taking the delta.) @GuardedBy("mWorkerLock") private WifiActivityEnergyInfo mLastWifiInfo = new WifiActivityEnergyInfo(0, 0, 0, 0, 0, 0); private WifiActivityEnergyInfo mLastWifiInfo = null; /** * Maps an {@link EnergyConsumerType} to it's corresponding {@link EnergyConsumer#id}s, Loading Loading @@ -827,8 +826,18 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat return null; } /** * Return a delta WifiActivityEnergyInfo from the last WifiActivityEnergyInfo passed to the * method. */ @VisibleForTesting @GuardedBy("mWorkerLock") private WifiActivityEnergyInfo extractDeltaLocked(WifiActivityEnergyInfo latest) { public WifiActivityEnergyInfo extractDeltaLocked(WifiActivityEnergyInfo latest) { if (mLastWifiInfo == null) { // This is the first time WifiActivityEnergyInfo has been collected since system boot. // Use this first WifiActivityEnergyInfo as the starting point for all accumulations. mLastWifiInfo = latest; } final long timePeriodMs = latest.getTimeSinceBootMillis() - mLastWifiInfo.getTimeSinceBootMillis(); final long lastScanMs = mLastWifiInfo.getControllerScanDurationMillis(); Loading
services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -15487,7 +15487,8 @@ public class BatteryStatsImpl extends BatteryStats { final long txTimeMs = counter.getTxTimeCounters()[0].getCountLocked(which); final long totalControllerActivityTimeMs = computeBatteryRealtime(mClock.elapsedRealtime() * 1000, which) / 1000; final long sleepTimeMs = totalControllerActivityTimeMs - (idleTimeMs + rxTimeMs + txTimeMs); final long sleepTimeMs = Math.max(0, totalControllerActivityTimeMs - (idleTimeMs + rxTimeMs + txTimeMs)); final long energyConsumedMaMs = counter.getPowerCounter().getCountLocked(which); final long monitoredRailChargeConsumedMaMs = counter.getMonitoredRailChargeConsumedMaMs().getCountLocked(which);
services/tests/powerstatstests/src/com/android/server/power/stats/BatteryExternalStatsWorkerTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.hardware.power.stats.PowerEntity; import android.hardware.power.stats.StateResidencyResult; import android.os.Handler; import android.os.Looper; import android.os.connectivity.WifiActivityEnergyInfo; import android.platform.test.ravenwood.RavenwoodRule; import android.power.PowerStatsInternal; import android.util.IntArray; Loading Loading @@ -87,6 +88,33 @@ public class BatteryExternalStatsWorkerTest { new BatteryExternalStatsWorker(new TestInjector(context), batteryStats); } @Test public void testUpdateWifiState() { WifiActivityEnergyInfo firstInfo = new WifiActivityEnergyInfo(1111, WifiActivityEnergyInfo.STACK_STATE_STATE_ACTIVE, 11, 22, 33, 44); WifiActivityEnergyInfo delta = mBatteryExternalStatsWorker.extractDeltaLocked(firstInfo); assertEquals(1111, delta.getTimeSinceBootMillis()); assertEquals(WifiActivityEnergyInfo.STACK_STATE_STATE_ACTIVE, delta.getStackState()); assertEquals(0, delta.getControllerTxDurationMillis()); assertEquals(0, delta.getControllerRxDurationMillis()); assertEquals(0, delta.getControllerScanDurationMillis()); assertEquals(0, delta.getControllerIdleDurationMillis()); WifiActivityEnergyInfo secondInfo = new WifiActivityEnergyInfo(91111, WifiActivityEnergyInfo.STACK_STATE_STATE_IDLE, 811, 722, 633, 544); delta = mBatteryExternalStatsWorker.extractDeltaLocked(secondInfo); assertEquals(91111, delta.getTimeSinceBootMillis()); assertEquals(WifiActivityEnergyInfo.STACK_STATE_STATE_IDLE, delta.getStackState()); assertEquals(800, delta.getControllerTxDurationMillis()); assertEquals(700, delta.getControllerRxDurationMillis()); assertEquals(600, delta.getControllerScanDurationMillis()); assertEquals(500, delta.getControllerIdleDurationMillis()); } @Test public void testTargetedEnergyConsumerQuerying() { final int numCpuClusters = 4; Loading