Merge "MeasuredEnergyStats - remove unused accumulate parameter" into sc-dev

This commit is contained in:
Adam Bookatz
2021-02-25 21:55:02 +00:00
committed by Android (Google) Code Review
3 changed files with 74 additions and 80 deletions

View File

@@ -7965,16 +7965,14 @@ public class BatteryStatsImpl extends BatteryStats {
/** Adds the given energy to the given standard energy bucket for this uid. */
private void addEnergyToStandardBucketLocked(long energyDeltaUJ,
@StandardEnergyBucket int energyBucket, boolean accumulate) {
@StandardEnergyBucket int energyBucket) {
getOrCreateMeasuredEnergyStatsLocked()
.updateStandardBucket(energyBucket, energyDeltaUJ, accumulate);
.updateStandardBucket(energyBucket, energyDeltaUJ);
}
/** Adds the given energy to the given custom energy bucket for this uid. */
private void addEnergyToCustomBucketLocked(long energyDeltaUJ, int energyBucket,
boolean accumulate) {
getOrCreateMeasuredEnergyStatsLocked()
.updateCustomBucket(energyBucket, energyDeltaUJ, accumulate);
private void addEnergyToCustomBucketLocked(long energyDeltaUJ, int energyBucket) {
getOrCreateMeasuredEnergyStatsLocked().updateCustomBucket(energyBucket, energyDeltaUJ);
}
/**
@@ -12468,7 +12466,7 @@ public class BatteryStatsImpl extends BatteryStats {
return;
}
mGlobalMeasuredEnergyStats.updateStandardBucket(energyBucket, energyUJ, true);
mGlobalMeasuredEnergyStats.updateStandardBucket(energyBucket, energyUJ);
// Now we blame individual apps, but only if the display was ON.
if (energyBucket != MeasuredEnergyStats.ENERGY_BUCKET_SCREEN_ON) {
@@ -12506,7 +12504,7 @@ public class BatteryStatsImpl extends BatteryStats {
final long appDisplayEnergyMJ =
(totalDisplayEnergyMJ * fgTimeMs + (totalFgTimeMs / 2))
/ totalFgTimeMs;
uid.addEnergyToStandardBucketLocked(appDisplayEnergyMJ * 1000, energyBucket, true);
uid.addEnergyToStandardBucketLocked(appDisplayEnergyMJ * 1000, energyBucket);
// To mitigate round-off errors, remove this app from numerator & denominator totals
totalDisplayEnergyMJ -= appDisplayEnergyMJ;
@@ -12533,7 +12531,7 @@ public class BatteryStatsImpl extends BatteryStats {
if (mGlobalMeasuredEnergyStats == null) return;
if (!mOnBatteryInternal || mIgnoreNextExternalStats || totalEnergyUJ <= 0) return;
mGlobalMeasuredEnergyStats.updateCustomBucket(customEnergyBucket, totalEnergyUJ, true);
mGlobalMeasuredEnergyStats.updateCustomBucket(customEnergyBucket, totalEnergyUJ);
if (uidEnergies == null) return;
final int numUids = uidEnergies.size();
@@ -12543,7 +12541,7 @@ public class BatteryStatsImpl extends BatteryStats {
if (uidEnergyUJ == 0) continue;
final Uid uidObj = getAvailableUidStatsLocked(uidInt);
if (uidObj != null) {
uidObj.addEnergyToCustomBucketLocked(uidEnergyUJ, customEnergyBucket, true);
uidObj.addEnergyToCustomBucketLocked(uidEnergyUJ, customEnergyBucket);
} else {
// Ignore any uid not already known to BatteryStats, rather than creating a new Uid.
// Otherwise we could end up reviving dead Uids. Note that the CPU data is updated

View File

@@ -193,34 +193,30 @@ public class MeasuredEnergyStats {
return mAccumulatedEnergiesMicroJoules.length;
}
// TODO: Get rid of the 'accumulate' boolean. It's always true.
/** Updates the given standard energy bucket with the given energy if accumulate is true. */
public void updateStandardBucket(@StandardEnergyBucket int bucket, long energyDeltaUJ,
boolean accumulate) {
public void updateStandardBucket(@StandardEnergyBucket int bucket, long energyDeltaUJ) {
checkValidStandardBucket(bucket);
updateEntry(bucket, energyDeltaUJ, accumulate);
updateEntry(bucket, energyDeltaUJ);
}
/** Updates the given custom energy bucket with the given energy if accumulate is true. */
public void updateCustomBucket(int customBucket, long energyDeltaUJ, boolean accumulate) {
public void updateCustomBucket(int customBucket, long energyDeltaUJ) {
if (!isValidCustomBucket(customBucket)) {
Slog.e(TAG, "Attempted to update invalid custom bucket " + customBucket);
return;
}
final int index = customBucketToIndex(customBucket);
updateEntry(index, energyDeltaUJ, accumulate);
updateEntry(index, energyDeltaUJ);
}
/** Updates the given index with the given energy if accumulate is true. */
private void updateEntry(int index, long energyDeltaUJ, boolean accumulate) {
if (accumulate) {
if (mAccumulatedEnergiesMicroJoules[index] >= 0L) {
mAccumulatedEnergiesMicroJoules[index] += energyDeltaUJ;
} else {
Slog.wtf(TAG, "Attempting to add " + energyDeltaUJ + " to unavailable bucket "
+ getBucketName(index) + " whose value was "
+ mAccumulatedEnergiesMicroJoules[index]);
}
private void updateEntry(int index, long energyDeltaUJ) {
if (mAccumulatedEnergiesMicroJoules[index] >= 0L) {
mAccumulatedEnergiesMicroJoules[index] += energyDeltaUJ;
} else {
Slog.wtf(TAG, "Attempting to add " + energyDeltaUJ + " to unavailable bucket "
+ getBucketName(index) + " whose value was "
+ mAccumulatedEnergiesMicroJoules[index]);
}
}

View File

@@ -81,11 +81,11 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
final MeasuredEnergyStats newStats = MeasuredEnergyStats.createFromTemplate(stats);
@@ -114,11 +114,11 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
final Parcel parcel = Parcel.obtain();
stats.writeToParcel(parcel);
@@ -149,11 +149,11 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
final Parcel parcel = Parcel.obtain();
MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
@@ -185,17 +185,17 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats template
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
template.updateCustomBucket(0, 50, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
template.updateCustomBucket(0, 50);
final MeasuredEnergyStats stats = MeasuredEnergyStats.createFromTemplate(template);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 200, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 7, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 63, true);
stats.updateCustomBucket(0, 315, true);
stats.updateCustomBucket(1, 316, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 200);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 7);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 63);
stats.updateCustomBucket(0, 315);
stats.updateCustomBucket(1, 316);
final Parcel parcel = Parcel.obtain();
MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
@@ -243,8 +243,8 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
// Accumulate energy in one bucket and one custom bucket, the rest should be zero
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 200, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 200);
stats.updateCustomBucket(1, 60);
// Let's try parcelling with including zeros
final Parcel includeZerosParcel = Parcel.obtain();
@@ -305,11 +305,11 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
final Parcel parcel = Parcel.obtain();
MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
@@ -331,14 +331,14 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats template
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
template.updateCustomBucket(0, 50, true);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
template.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
template.updateCustomBucket(0, 50);
final MeasuredEnergyStats stats = MeasuredEnergyStats.createFromTemplate(template);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 0L, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 7L, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 0L);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 7L);
final Parcel parcel = Parcel.obtain();
MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
@@ -369,14 +369,14 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_DOZE, 30, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_DOZE, 30);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateCustomBucket(0, 3, true);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
stats.updateCustomBucket(0, 3);
assertEquals(15, stats.getAccumulatedStandardBucketEnergy(ENERGY_BUCKET_SCREEN_ON));
assertEquals(ENERGY_DATA_UNAVAILABLE,
@@ -409,10 +409,10 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(new boolean[NUMBER_STANDARD_ENERGY_BUCKETS], 3);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateCustomBucket(2, 13, true);
stats.updateCustomBucket(1, 70, true);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
stats.updateCustomBucket(2, 13);
stats.updateCustomBucket(1, 70);
final long[] output = stats.getAccumulatedCustomBucketEnergies();
assertEquals(3, output.length);
@@ -449,11 +449,11 @@ public class MeasuredEnergyStatsTest {
final MeasuredEnergyStats stats
= new MeasuredEnergyStats(supportedStandardBuckets, numCustomBuckets);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40, true);
stats.updateCustomBucket(0, 50, true);
stats.updateCustomBucket(1, 60, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 10);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 5);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_OTHER, 40);
stats.updateCustomBucket(0, 50);
stats.updateCustomBucket(1, 60);
MeasuredEnergyStats.resetIfNotNull(stats);
// All energy should be reset to 0
@@ -471,10 +471,10 @@ public class MeasuredEnergyStatsTest {
}
// Values should increase as usual.
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 70, true);
stats.updateStandardBucket(ENERGY_BUCKET_SCREEN_ON, 70);
assertEquals(70L, stats.getAccumulatedStandardBucketEnergy(ENERGY_BUCKET_SCREEN_ON));
stats.updateCustomBucket(1, 12, true);
stats.updateCustomBucket(1, 12);
assertEquals(12L, stats.getAccumulatedCustomBucketEnergy(1));
}