Various improvements to battery stats collection
We now clear the battery stats when unplugging after the battery is full. This allows us to use the "total" stats as a new "since last charged" stat. Total is gone. I never used it, it was worthless. Since last charged is a lot more interesting. The battery history now collects a lot more stats, and keeps control over how much it can collect. Printing is now more descriptive. The kinds of stats have been renamed to SINCE_UNPLUGGED and SINCE_DISCHARGED. The other two stats are still there, but no longer printed; a future change will eliminate them completely along with all of their state. Change-Id: I4e9fcfcf8c30510092c76a8594f6021e9502fbc1
This commit is contained in:
@ -210,9 +210,6 @@ class BatteryService extends Binder {
|
||||
boolean logOutlier = false;
|
||||
long dischargeDuration = 0;
|
||||
|
||||
shutdownIfNoPower();
|
||||
shutdownIfOverTemp();
|
||||
|
||||
mBatteryLevelCritical = mBatteryLevel <= CRITICAL_BATTERY_LEVEL;
|
||||
if (mAcOnline) {
|
||||
mPlugType = BatteryManager.BATTERY_PLUGGED_AC;
|
||||
@ -221,6 +218,19 @@ class BatteryService extends Binder {
|
||||
} else {
|
||||
mPlugType = BATTERY_PLUGGED_NONE;
|
||||
}
|
||||
|
||||
// Let the battery stats keep track of the current level.
|
||||
try {
|
||||
mBatteryStats.setBatteryState(mBatteryStatus, mBatteryHealth,
|
||||
mPlugType, mBatteryLevel, mBatteryTemperature,
|
||||
mBatteryVoltage);
|
||||
} catch (RemoteException e) {
|
||||
// Should never happen.
|
||||
}
|
||||
|
||||
shutdownIfNoPower();
|
||||
shutdownIfOverTemp();
|
||||
|
||||
if (mBatteryStatus != mLastBatteryStatus ||
|
||||
mBatteryHealth != mLastBatteryHealth ||
|
||||
mBatteryPresent != mLastBatteryPresent ||
|
||||
@ -263,16 +273,6 @@ class BatteryService extends Binder {
|
||||
EventLog.writeEvent(EventLogTags.BATTERY_LEVEL,
|
||||
mBatteryLevel, mBatteryVoltage, mBatteryTemperature);
|
||||
}
|
||||
if (mBatteryLevel != mLastBatteryLevel && mPlugType == BATTERY_PLUGGED_NONE) {
|
||||
// If the battery level has changed and we are on battery, update the current level.
|
||||
// This is used for discharge cycle tracking so this shouldn't be updated while the
|
||||
// battery is charging.
|
||||
try {
|
||||
mBatteryStats.recordCurrentLevel(mBatteryLevel);
|
||||
} catch (RemoteException e) {
|
||||
// Should never happen.
|
||||
}
|
||||
}
|
||||
if (mBatteryLevelCritical && !mLastBatteryLevelCritical &&
|
||||
mPlugType == BATTERY_PLUGGED_NONE) {
|
||||
// We want to make sure we log discharge cycle outliers
|
||||
@ -342,11 +342,6 @@ class BatteryService extends Binder {
|
||||
Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
|
||||
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
|
||||
| Intent.FLAG_RECEIVER_REPLACE_PENDING);
|
||||
try {
|
||||
mBatteryStats.setOnBattery(mPlugType == BATTERY_PLUGGED_NONE, mBatteryLevel);
|
||||
} catch (RemoteException e) {
|
||||
// Should never happen.
|
||||
}
|
||||
|
||||
int icon = getIcon(mBatteryLevel);
|
||||
|
||||
|
Reference in New Issue
Block a user