am e6abedd6: Merge "Account for all wake lock usage."
* commit 'e6abedd6b88b14101a00877be1255c1094b76e55': Account for all wake lock usage.
This commit is contained in:
@@ -414,6 +414,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
|||||||
}
|
}
|
||||||
final double averageCostPerByte = getAverageDataCost();
|
final double averageCostPerByte = getAverageDataCost();
|
||||||
long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which);
|
long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which);
|
||||||
|
long appWakelockTime = 0;
|
||||||
|
BatterySipper osApp = null;
|
||||||
mStatsPeriod = uSecTime;
|
mStatsPeriod = uSecTime;
|
||||||
SparseArray<? extends Uid> uidStats = mStats.getUidStats();
|
SparseArray<? extends Uid> uidStats = mStats.getUidStats();
|
||||||
final int NU = uidStats.size();
|
final int NU = uidStats.size();
|
||||||
@@ -488,6 +490,7 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
wakelockTime /= 1000; // convert to millis
|
wakelockTime /= 1000; // convert to millis
|
||||||
|
appWakelockTime += wakelockTime;
|
||||||
|
|
||||||
// Add cost of holding a wake lock
|
// Add cost of holding a wake lock
|
||||||
power += (wakelockTime
|
power += (wakelockTime
|
||||||
@@ -535,7 +538,7 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
|||||||
if (DEBUG) Log.i(TAG, "UID " + u.getUid() + ": power=" + power);
|
if (DEBUG) Log.i(TAG, "UID " + u.getUid() + ": power=" + power);
|
||||||
|
|
||||||
// Add the app to the list if it is consuming power
|
// Add the app to the list if it is consuming power
|
||||||
if (power != 0) {
|
if (power != 0 || u.getUid() == 0) {
|
||||||
BatterySipper app = new BatterySipper(getActivity(), mRequestQueue, mHandler,
|
BatterySipper app = new BatterySipper(getActivity(), mRequestQueue, mHandler,
|
||||||
packageWithHighestDrain, DrainType.APP, 0, u,
|
packageWithHighestDrain, DrainType.APP, 0, u,
|
||||||
new double[] {power});
|
new double[] {power});
|
||||||
@@ -553,6 +556,9 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
|||||||
} else {
|
} else {
|
||||||
mUsageList.add(app);
|
mUsageList.add(app);
|
||||||
}
|
}
|
||||||
|
if (u.getUid() == 0) {
|
||||||
|
osApp = app;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (u.getUid() == Process.WIFI_UID) {
|
if (u.getUid() == Process.WIFI_UID) {
|
||||||
mWifiPower += power;
|
mWifiPower += power;
|
||||||
@@ -564,6 +570,25 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
|||||||
}
|
}
|
||||||
if (DEBUG) Log.i(TAG, "Added power = " + power);
|
if (DEBUG) Log.i(TAG, "Added power = " + power);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The device has probably been awake for longer than the screen on
|
||||||
|
// time and application wake lock time would account for. Assign
|
||||||
|
// this remainder to the OS, if possible.
|
||||||
|
if (osApp != null) {
|
||||||
|
long wakeTimeMillis = mStats.computeBatteryUptime(
|
||||||
|
SystemClock.uptimeMillis() * 1000, which) / 1000;
|
||||||
|
wakeTimeMillis -= appWakelockTime - (mStats.getScreenOnTime(
|
||||||
|
SystemClock.elapsedRealtime(), which) / 1000);
|
||||||
|
if (wakeTimeMillis > 0) {
|
||||||
|
double power = (wakeTimeMillis
|
||||||
|
* mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_AWAKE)) / 1000;
|
||||||
|
osApp.wakeLockTime += wakeTimeMillis;
|
||||||
|
osApp.value += power;
|
||||||
|
osApp.values[0] += power;
|
||||||
|
if (osApp.value > mMaxPower) mMaxPower = osApp.value;
|
||||||
|
mTotalPower += power;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addPhoneUsage(long uSecNow) {
|
private void addPhoneUsage(long uSecNow) {
|
||||||
|
|||||||
Reference in New Issue
Block a user