Loading core/java/android/os/BatteryStats.java +5 −2 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import android.view.Display; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.CpuScalingPolicies; import com.android.internal.os.MonotonicClock; import com.android.internal.os.PowerStats; import com.google.android.collect.Lists; Loading Loading @@ -7484,7 +7485,8 @@ public abstract class BatteryStats { long baseTime = -1; boolean printed = false; HistoryEventTracker tracker = null; try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, 0)) { try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, MonotonicClock.UNDEFINED)) { HistoryItem rec; while ((rec = iterator.next()) != null) { try { Loading Loading @@ -8409,7 +8411,8 @@ public abstract class BatteryStats { long baseTime = -1; boolean printed = false; HistoryEventTracker tracker = null; try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, 0)) { try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, MonotonicClock.UNDEFINED)) { HistoryItem rec; while ((rec = iterator.next()) != null) { lastTime = rec.time; Loading core/java/android/os/BatteryUsageStats.java +2 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.MonotonicClock; import com.android.modules.utils.TypedXmlPullParser; import com.android.modules.utils.TypedXmlSerializer; Loading Loading @@ -323,7 +324,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { throw new IllegalStateException( "Battery history was not requested in the BatteryUsageStatsQuery"); } return new BatteryStatsHistoryIterator(mBatteryStatsHistory, 0, 0); return new BatteryStatsHistoryIterator(mBatteryStatsHistory, 0, MonotonicClock.UNDEFINED); } @Override Loading core/java/com/android/internal/os/BatteryStatsHistory.java +1 −1 Original line number Diff line number Diff line Loading @@ -629,7 +629,7 @@ public class BatteryStatsHistory { * @param startTimeMs monotonic time (the HistoryItem.time field) to start iterating from, * inclusive * @param endTimeMs monotonic time to stop iterating, exclusive. * Pass 0 to indicate current time. * Pass {@link MonotonicClock#UNDEFINED} to indicate current time. */ @NonNull public BatteryStatsHistoryIterator iterate(long startTimeMs, long endTimeMs) { Loading core/java/com/android/internal/os/BatteryStatsHistoryIterator.java +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ public class BatteryStatsHistoryIterator implements Iterator<BatteryStats.Histor long endTimeMs) { mBatteryStatsHistory = history; mStartTimeMs = startTimeMs; mEndTimeMs = (endTimeMs != 0) ? endTimeMs : Long.MAX_VALUE; mEndTimeMs = (endTimeMs != MonotonicClock.UNDEFINED) ? endTimeMs : Long.MAX_VALUE; mHistoryItem.clear(); } Loading services/core/java/com/android/server/am/BatteryStatsService.java +19 −10 Original line number Diff line number Diff line Loading @@ -178,7 +178,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub final BatteryStatsImpl mStats; final CpuWakeupStats mCpuWakeupStats; private final PowerStatsStore mPowerStatsStore; private final PowerStatsAggregator mPowerStatsAggregator; private final PowerStatsScheduler mPowerStatsScheduler; private final BatteryStatsImpl.UserInfoProvider mUserManagerUserInfoProvider; private final Context mContext; Loading @@ -187,6 +186,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub private final AtomicFile mConfigFile; private final BatteryStats.BatteryStatsDumpHelper mDumpHelper; private final PowerStatsUidResolver mPowerStatsUidResolver; private final AggregatedPowerStatsConfig mAggregatedPowerStatsConfig; private volatile boolean mMonitorEnabled = true; Loading Loading @@ -424,13 +424,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub com.android.internal.R.integer.config_radioScanningTimeout) * 1000L); mStats.startTrackingSystemServerCpuTime(); AggregatedPowerStatsConfig aggregatedPowerStatsConfig = getAggregatedPowerStatsConfig(); mPowerStatsStore = new PowerStatsStore(systemDir, mHandler, aggregatedPowerStatsConfig); mPowerStatsAggregator = new PowerStatsAggregator(aggregatedPowerStatsConfig, mStats.getHistory()); mAggregatedPowerStatsConfig = createAggregatedPowerStatsConfig(); mPowerStatsStore = new PowerStatsStore(systemDir, mHandler, mAggregatedPowerStatsConfig); mPowerStatsScheduler = createPowerStatsScheduler(mContext); PowerStatsExporter powerStatsExporter = new PowerStatsExporter(mPowerStatsStore, mPowerStatsAggregator); new PowerStatsExporter(mPowerStatsStore, new PowerStatsAggregator(mAggregatedPowerStatsConfig, mStats.getHistory())); mBatteryUsageStatsProvider = new BatteryUsageStatsProvider(context, powerStatsExporter, mPowerProfile, mCpuScalingPolicies, mPowerStatsStore, Clock.SYSTEM_CLOCK); Loading @@ -452,12 +451,13 @@ public final class BatteryStatsService extends IBatteryStats.Stub onAlarmListener, aHandler); }; return new PowerStatsScheduler(mStats::schedulePowerStatsSampleCollection, mPowerStatsAggregator, aggregatedPowerStatsSpanDuration, new PowerStatsAggregator(mAggregatedPowerStatsConfig, mStats.getHistory()), aggregatedPowerStatsSpanDuration, powerStatsAggregationPeriod, mPowerStatsStore, alarmScheduler, Clock.SYSTEM_CLOCK, mMonotonicClock, () -> mStats.getHistory().getStartTime(), mHandler); } private AggregatedPowerStatsConfig getAggregatedPowerStatsConfig() { private AggregatedPowerStatsConfig createAggregatedPowerStatsConfig() { AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig(); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU) .trackDeviceStates( Loading Loading @@ -896,6 +896,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub SystemClock.elapsedRealtime(), mWorker.getLastCollectionTimeStamp())) { syncStats("get-stats", BatteryExternalStatsWorker.UPDATE_ALL); if (Flags.streamlinedBatteryStats()) { mStats.collectPowerStatsSamples(); } } return mBatteryUsageStatsProvider.getBatteryUsageStats(mStats, queries); Loading Loading @@ -2725,7 +2728,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } private void dumpUsageStatsToProto(FileDescriptor fd, PrintWriter pw, int model, private void dumpUsageStats(FileDescriptor fd, PrintWriter pw, int model, boolean proto) { awaitCompletion(); syncStats("dump", BatteryExternalStatsWorker.UPDATE_ALL); Loading @@ -2741,6 +2744,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub synchronized (mStats) { mStats.prepareForDumpLocked(); } if (Flags.streamlinedBatteryStats()) { // Important: perform this operation outside the mStats lock, because it will // need to access BatteryStats from a handler thread mStats.collectPowerStatsSamples(); } BatteryUsageStats batteryUsageStats = mBatteryUsageStatsProvider.getBatteryUsageStats(mStats, query); if (proto) { Loading Loading @@ -2945,7 +2954,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } dumpUsageStatsToProto(fd, pw, model, proto); dumpUsageStats(fd, pw, model, proto); return; } else if ("--wakeups".equals(arg)) { mCpuWakeupStats.dump(new IndentingPrintWriter(pw, " "), Loading Loading
core/java/android/os/BatteryStats.java +5 −2 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import android.view.Display; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.CpuScalingPolicies; import com.android.internal.os.MonotonicClock; import com.android.internal.os.PowerStats; import com.google.android.collect.Lists; Loading Loading @@ -7484,7 +7485,8 @@ public abstract class BatteryStats { long baseTime = -1; boolean printed = false; HistoryEventTracker tracker = null; try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, 0)) { try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, MonotonicClock.UNDEFINED)) { HistoryItem rec; while ((rec = iterator.next()) != null) { try { Loading Loading @@ -8409,7 +8411,8 @@ public abstract class BatteryStats { long baseTime = -1; boolean printed = false; HistoryEventTracker tracker = null; try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, 0)) { try (BatteryStatsHistoryIterator iterator = iterateBatteryStatsHistory(0, MonotonicClock.UNDEFINED)) { HistoryItem rec; while ((rec = iterator.next()) != null) { lastTime = rec.time; Loading
core/java/android/os/BatteryUsageStats.java +2 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.MonotonicClock; import com.android.modules.utils.TypedXmlPullParser; import com.android.modules.utils.TypedXmlSerializer; Loading Loading @@ -323,7 +324,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { throw new IllegalStateException( "Battery history was not requested in the BatteryUsageStatsQuery"); } return new BatteryStatsHistoryIterator(mBatteryStatsHistory, 0, 0); return new BatteryStatsHistoryIterator(mBatteryStatsHistory, 0, MonotonicClock.UNDEFINED); } @Override Loading
core/java/com/android/internal/os/BatteryStatsHistory.java +1 −1 Original line number Diff line number Diff line Loading @@ -629,7 +629,7 @@ public class BatteryStatsHistory { * @param startTimeMs monotonic time (the HistoryItem.time field) to start iterating from, * inclusive * @param endTimeMs monotonic time to stop iterating, exclusive. * Pass 0 to indicate current time. * Pass {@link MonotonicClock#UNDEFINED} to indicate current time. */ @NonNull public BatteryStatsHistoryIterator iterate(long startTimeMs, long endTimeMs) { Loading
core/java/com/android/internal/os/BatteryStatsHistoryIterator.java +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ public class BatteryStatsHistoryIterator implements Iterator<BatteryStats.Histor long endTimeMs) { mBatteryStatsHistory = history; mStartTimeMs = startTimeMs; mEndTimeMs = (endTimeMs != 0) ? endTimeMs : Long.MAX_VALUE; mEndTimeMs = (endTimeMs != MonotonicClock.UNDEFINED) ? endTimeMs : Long.MAX_VALUE; mHistoryItem.clear(); } Loading
services/core/java/com/android/server/am/BatteryStatsService.java +19 −10 Original line number Diff line number Diff line Loading @@ -178,7 +178,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub final BatteryStatsImpl mStats; final CpuWakeupStats mCpuWakeupStats; private final PowerStatsStore mPowerStatsStore; private final PowerStatsAggregator mPowerStatsAggregator; private final PowerStatsScheduler mPowerStatsScheduler; private final BatteryStatsImpl.UserInfoProvider mUserManagerUserInfoProvider; private final Context mContext; Loading @@ -187,6 +186,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub private final AtomicFile mConfigFile; private final BatteryStats.BatteryStatsDumpHelper mDumpHelper; private final PowerStatsUidResolver mPowerStatsUidResolver; private final AggregatedPowerStatsConfig mAggregatedPowerStatsConfig; private volatile boolean mMonitorEnabled = true; Loading Loading @@ -424,13 +424,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub com.android.internal.R.integer.config_radioScanningTimeout) * 1000L); mStats.startTrackingSystemServerCpuTime(); AggregatedPowerStatsConfig aggregatedPowerStatsConfig = getAggregatedPowerStatsConfig(); mPowerStatsStore = new PowerStatsStore(systemDir, mHandler, aggregatedPowerStatsConfig); mPowerStatsAggregator = new PowerStatsAggregator(aggregatedPowerStatsConfig, mStats.getHistory()); mAggregatedPowerStatsConfig = createAggregatedPowerStatsConfig(); mPowerStatsStore = new PowerStatsStore(systemDir, mHandler, mAggregatedPowerStatsConfig); mPowerStatsScheduler = createPowerStatsScheduler(mContext); PowerStatsExporter powerStatsExporter = new PowerStatsExporter(mPowerStatsStore, mPowerStatsAggregator); new PowerStatsExporter(mPowerStatsStore, new PowerStatsAggregator(mAggregatedPowerStatsConfig, mStats.getHistory())); mBatteryUsageStatsProvider = new BatteryUsageStatsProvider(context, powerStatsExporter, mPowerProfile, mCpuScalingPolicies, mPowerStatsStore, Clock.SYSTEM_CLOCK); Loading @@ -452,12 +451,13 @@ public final class BatteryStatsService extends IBatteryStats.Stub onAlarmListener, aHandler); }; return new PowerStatsScheduler(mStats::schedulePowerStatsSampleCollection, mPowerStatsAggregator, aggregatedPowerStatsSpanDuration, new PowerStatsAggregator(mAggregatedPowerStatsConfig, mStats.getHistory()), aggregatedPowerStatsSpanDuration, powerStatsAggregationPeriod, mPowerStatsStore, alarmScheduler, Clock.SYSTEM_CLOCK, mMonotonicClock, () -> mStats.getHistory().getStartTime(), mHandler); } private AggregatedPowerStatsConfig getAggregatedPowerStatsConfig() { private AggregatedPowerStatsConfig createAggregatedPowerStatsConfig() { AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig(); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU) .trackDeviceStates( Loading Loading @@ -896,6 +896,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub SystemClock.elapsedRealtime(), mWorker.getLastCollectionTimeStamp())) { syncStats("get-stats", BatteryExternalStatsWorker.UPDATE_ALL); if (Flags.streamlinedBatteryStats()) { mStats.collectPowerStatsSamples(); } } return mBatteryUsageStatsProvider.getBatteryUsageStats(mStats, queries); Loading Loading @@ -2725,7 +2728,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } private void dumpUsageStatsToProto(FileDescriptor fd, PrintWriter pw, int model, private void dumpUsageStats(FileDescriptor fd, PrintWriter pw, int model, boolean proto) { awaitCompletion(); syncStats("dump", BatteryExternalStatsWorker.UPDATE_ALL); Loading @@ -2741,6 +2744,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub synchronized (mStats) { mStats.prepareForDumpLocked(); } if (Flags.streamlinedBatteryStats()) { // Important: perform this operation outside the mStats lock, because it will // need to access BatteryStats from a handler thread mStats.collectPowerStatsSamples(); } BatteryUsageStats batteryUsageStats = mBatteryUsageStatsProvider.getBatteryUsageStats(mStats, query); if (proto) { Loading Loading @@ -2945,7 +2954,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } dumpUsageStatsToProto(fd, pw, model, proto); dumpUsageStats(fd, pw, model, proto); return; } else if ("--wakeups".equals(arg)) { mCpuWakeupStats.dump(new IndentingPrintWriter(pw, " "), Loading