From ff06a0ffb798dbc3d85a0f0ff65cacaa493b263a Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Tue, 20 Apr 2021 19:01:52 +0000 Subject: [PATCH] Revert "Save power component names in the summary parcel for MeasuredEnergySnapshot" This reverts commit efa581e44e0dd87c0a40bddd01b7daec3ee7f061. Reason for revert: Broke a test Change-Id: Ib5ab56032ba4c4203cbc6f3eaf1e5d80c89a9717 --- .../android/internal/os/BatteryStatsImpl.java | 6 +++--- .../internal/power/MeasuredEnergyStats.java | 15 ++++++--------- .../power/MeasuredEnergyStatsTest.java | 14 ++++++-------- .../server/am/MeasuredEnergySnapshot.java | 19 +------------------ .../server/am/MeasuredEnergySnapshotTest.java | 5 ++--- 5 files changed, 18 insertions(+), 41 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index f843eae3a4429..b05a9f830a7d1 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -161,7 +161,7 @@ public class BatteryStatsImpl extends BatteryStats { private static final int MAGIC = 0xBA757475; // 'BATSTATS' // Current on-disk Parcel version - static final int VERSION = 198; + static final int VERSION = 197; // The maximum number of names wakelocks we will keep track of // per uid; once the limit is reached, we batch the remaining wakelocks @@ -15606,7 +15606,7 @@ public class BatteryStatsImpl extends BatteryStats { out.writeLong(mNextMaxDailyDeadlineMs); out.writeLong(mBatteryTimeToFullSeconds); - MeasuredEnergyStats.writeSummaryToParcel(mGlobalMeasuredEnergyStats, out, false, false); + MeasuredEnergyStats.writeSummaryToParcel(mGlobalMeasuredEnergyStats, out, false); mScreenOnTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS); mScreenDozeTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS); @@ -15931,7 +15931,7 @@ public class BatteryStatsImpl extends BatteryStats { out.writeInt(0); } - MeasuredEnergyStats.writeSummaryToParcel(u.mUidMeasuredEnergyStats, out, true, true); + MeasuredEnergyStats.writeSummaryToParcel(u.mUidMeasuredEnergyStats, out, true); final ArrayMap wakeStats = u.mWakelockStats.getMap(); int NW = wakeStats.size(); diff --git a/core/java/com/android/internal/power/MeasuredEnergyStats.java b/core/java/com/android/internal/power/MeasuredEnergyStats.java index 38c53448937d2..3153071fd75d3 100644 --- a/core/java/com/android/internal/power/MeasuredEnergyStats.java +++ b/core/java/com/android/internal/power/MeasuredEnergyStats.java @@ -140,7 +140,7 @@ public class MeasuredEnergyStats { */ private MeasuredEnergyStats(int numIndices) { mAccumulatedChargeMicroCoulomb = new long[numIndices]; - mCustomBucketNames = new String[numIndices - NUMBER_STANDARD_POWER_BUCKETS]; + mCustomBucketNames = new String[0]; } /** Construct from parcel. */ @@ -290,7 +290,7 @@ public class MeasuredEnergyStats { * Create a MeasuredEnergyStats object from a summary parcel. * * Corresponding write performed by - * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean, boolean)}. + * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean)}. * * @return a new MeasuredEnergyStats object as described. * Returns null if the parcel indicates there is no data to populate. @@ -300,9 +300,9 @@ public class MeasuredEnergyStats { // Check if any MeasuredEnergyStats exists on the parcel if (arraySize == 0) return null; - final String[] customBucketNames = in.readStringArray(); + final int numCustomBuckets = arraySize - NUMBER_STANDARD_POWER_BUCKETS; final MeasuredEnergyStats stats = new MeasuredEnergyStats( - new boolean[NUMBER_STANDARD_POWER_BUCKETS], customBucketNames); + new boolean[NUMBER_STANDARD_POWER_BUCKETS], new String[numCustomBuckets]); stats.readSummaryFromParcel(in, true); return stats; } @@ -315,7 +315,7 @@ public class MeasuredEnergyStats { * possible (not necessarily supported) standard and custom buckets. * * Corresponding write performed by - * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean, boolean)}. + * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean)}. * * @return a new MeasuredEnergyStats object as described. * Returns null if the stats contain no non-0 information (such as if template is null @@ -370,15 +370,12 @@ public class MeasuredEnergyStats { * and {@link #createAndReadSummaryFromParcel(Parcel, MeasuredEnergyStats)}. */ public static void writeSummaryToParcel(@Nullable MeasuredEnergyStats stats, - Parcel dest, boolean skipZero, boolean skipCustomBucketNames) { + Parcel dest, boolean skipZero) { if (stats == null) { dest.writeInt(0); return; } dest.writeInt(stats.getNumberOfIndices()); - if (!skipCustomBucketNames) { - dest.writeStringArray(stats.getCustomBucketNames()); - } stats.writeSummaryToParcel(dest, skipZero); } diff --git a/core/tests/coretests/src/com/android/internal/power/MeasuredEnergyStatsTest.java b/core/tests/coretests/src/com/android/internal/power/MeasuredEnergyStatsTest.java index 66f6e91d9d30d..f1edc871a56c1 100644 --- a/core/tests/coretests/src/com/android/internal/power/MeasuredEnergyStatsTest.java +++ b/core/tests/coretests/src/com/android/internal/power/MeasuredEnergyStatsTest.java @@ -159,7 +159,7 @@ public class MeasuredEnergyStatsTest { stats.updateCustomBucket(1, 60); final Parcel parcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false); + MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false); parcel.setDataPosition(0); MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(parcel); @@ -175,7 +175,6 @@ public class MeasuredEnergyStatsTest { } assertEquals(POWER_DATA_UNAVAILABLE, newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1)); - assertThat(newStats.getCustomBucketNames()).asList().containsExactly("A", "B"); parcel.recycle(); } @@ -202,7 +201,7 @@ public class MeasuredEnergyStatsTest { stats.updateCustomBucket(1, 316); final Parcel parcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false); + MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false); final boolean[] newsupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS]; newsupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true; @@ -235,7 +234,6 @@ public class MeasuredEnergyStatsTest { } assertEquals(POWER_DATA_UNAVAILABLE, newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1)); - assertThat(newStats.getCustomBucketNames()).asList().containsExactly("A", "B"); parcel.recycle(); } @@ -253,7 +251,7 @@ public class MeasuredEnergyStatsTest { // Let's try parcelling with including zeros final Parcel includeZerosParcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, includeZerosParcel, false, false); + MeasuredEnergyStats.writeSummaryToParcel(stats, includeZerosParcel, false); includeZerosParcel.setDataPosition(0); MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel( @@ -277,7 +275,7 @@ public class MeasuredEnergyStatsTest { // Now let's try parcelling with skipping zeros final Parcel skipZerosParcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, skipZerosParcel, true, true); + MeasuredEnergyStats.writeSummaryToParcel(stats, skipZerosParcel, true); skipZerosParcel.setDataPosition(0); newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(skipZerosParcel); @@ -317,7 +315,7 @@ public class MeasuredEnergyStatsTest { stats.updateCustomBucket(1, 60); final Parcel parcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false); + MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false); parcel.setDataPosition(0); MeasuredEnergyStats newStats = @@ -346,7 +344,7 @@ public class MeasuredEnergyStatsTest { stats.updateStandardBucket(POWER_BUCKET_SCREEN_OTHER, 7L); final Parcel parcel = Parcel.obtain(); - MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false); + MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false); final boolean[] newSupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS]; newSupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true; diff --git a/services/core/java/com/android/server/am/MeasuredEnergySnapshot.java b/services/core/java/com/android/server/am/MeasuredEnergySnapshot.java index a9fca4f240269..65d47550a2edc 100644 --- a/services/core/java/com/android/server/am/MeasuredEnergySnapshot.java +++ b/services/core/java/com/android/server/am/MeasuredEnergySnapshot.java @@ -345,29 +345,12 @@ public class MeasuredEnergySnapshot { for (int idx = 0; idx < size; idx++) { final EnergyConsumer consumer = mEnergyConsumers.valueAt(idx); if (consumer.type == (int) EnergyConsumerType.OTHER) { - names[consumerIndex++] = sanitizeCustomBucketName(consumer.name); + names[consumerIndex++] = consumer.name; } } return names; } - private String sanitizeCustomBucketName(String bucketName) { - if (bucketName == null) { - return ""; - } - StringBuilder sb = new StringBuilder(bucketName.length()); - for (char c : bucketName.toCharArray()) { - if (Character.isWhitespace(c)) { - sb.append(' '); - } else if (Character.isISOControl(c)) { - sb.append('_'); - } else { - sb.append(c); - } - } - return sb.toString(); - } - /** Determines the number of ordinals for a given {@link EnergyConsumerType}. */ private static int calculateNumOrdinals(@EnergyConsumerType int type, SparseArray idToConsumer) { diff --git a/services/tests/servicestests/src/com/android/server/am/MeasuredEnergySnapshotTest.java b/services/tests/servicestests/src/com/android/server/am/MeasuredEnergySnapshotTest.java index 8c87506295f30..6ca1102b23ef6 100644 --- a/services/tests/servicestests/src/com/android/server/am/MeasuredEnergySnapshotTest.java +++ b/services/tests/servicestests/src/com/android/server/am/MeasuredEnergySnapshotTest.java @@ -52,7 +52,7 @@ public final class MeasuredEnergySnapshotTest { private static final EnergyConsumer CONSUMER_OTHER_1 = createEnergyConsumer( 1, 1, EnergyConsumerType.OTHER, "HPU"); private static final EnergyConsumer CONSUMER_OTHER_2 = createEnergyConsumer( - 436, 2, EnergyConsumerType.OTHER, "IPU\n&\005"); + 436, 2, EnergyConsumerType.OTHER, "IPU"); private static final SparseArray ALL_ID_CONSUMER_MAP = createIdToConsumerMap( CONSUMER_DISPLAY, CONSUMER_OTHER_0, CONSUMER_OTHER_1, CONSUMER_OTHER_2); @@ -228,8 +228,7 @@ public final class MeasuredEnergySnapshotTest { @Test public void testGetOtherOrdinalNames() { final MeasuredEnergySnapshot snapshot = new MeasuredEnergySnapshot(ALL_ID_CONSUMER_MAP); - assertThat(snapshot.getOtherOrdinalNames()).asList() - .containsExactly("GPU", "HPU", "IPU &_"); + assertThat(snapshot.getOtherOrdinalNames()).asList().containsExactly("GPU", "HPU", "IPU"); } @Test