Android OS battery usage overstated by screen on time

Change-Id: Icbc4b3ecf91bdbb90da3ee0cf1c68bec953d0177
Signed-off-by: Todd Poynor <toddpoynor@google.com>
This commit is contained in:
Todd Poynor
2011-12-16 16:02:51 -08:00
parent 2bccd7f4a7
commit e3b4dfae6f

View File

@@ -579,11 +579,12 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
if (osApp != null) { if (osApp != null) {
long wakeTimeMillis = mStats.computeBatteryUptime( long wakeTimeMillis = mStats.computeBatteryUptime(
SystemClock.uptimeMillis() * 1000, which) / 1000; SystemClock.uptimeMillis() * 1000, which) / 1000;
wakeTimeMillis -= appWakelockTime - (mStats.getScreenOnTime( wakeTimeMillis -= appWakelockTime + (mStats.getScreenOnTime(
SystemClock.elapsedRealtime(), which) / 1000); SystemClock.elapsedRealtime(), which) / 1000);
if (wakeTimeMillis > 0) { if (wakeTimeMillis > 0) {
double power = (wakeTimeMillis double power = (wakeTimeMillis
* mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_AWAKE)) / 1000; * mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_AWAKE)) / 1000;
if (DEBUG) Log.i(TAG, "OS wakeLockTime " + wakeTimeMillis + " power " + power);
osApp.wakeLockTime += wakeTimeMillis; osApp.wakeLockTime += wakeTimeMillis;
osApp.value += power; osApp.value += power;
osApp.values[0] += power; osApp.values[0] += power;