Loading services/core/java/com/android/server/am/BatteryStatsService.java +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.os.BatteryUsageStatsQuery; import android.os.Binder; import android.os.BluetoothBatteryStats; import android.os.Bundle; import android.os.ConditionVariable; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; Loading Loading @@ -213,6 +214,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub private final HandlerThread mHandlerThread; private final Handler mHandler; private final Object mLock = new Object(); private final ConditionVariable mSystemReady = new ConditionVariable(false); private final Object mPowerStatsLock = new Object(); @GuardedBy("mPowerStatsLock") Loading Loading @@ -413,6 +415,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub mHandlerThread = new HandlerThread("batterystats-handler"); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper()); mHandler.post(mSystemReady::block); mMonotonicClock = new MonotonicClock(new File(systemDir, "monotonic_clock.xml")); mPowerProfile = new PowerProfile(context); Loading Loading @@ -648,6 +651,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub dataConnectionStats.startMonitoring(); registerStatsCallbacks(); mSystemReady.open(); } private static boolean isBatteryUsageStatsAccumulationSupported() { Loading services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +10 −8 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.BatteryUsageStatsQuery; import android.os.Handler; import android.os.Process; import android.util.Log; import android.util.Slog; import android.util.SparseArray; import com.android.internal.os.Clock; Loading Loading @@ -350,13 +351,14 @@ public class BatteryUsageStatsProvider { synchronized (stats) { final List<PowerCalculator> powerCalculators = getPowerCalculators(); if (!powerCalculators.isEmpty()) { if (monotonicStartTime != MonotonicClock.UNDEFINED || monotonicEndTime != MonotonicClock.UNDEFINED) { throw new IllegalStateException("BatteryUsageStatsQuery specifies a time " boolean usePowerCalculators = !powerCalculators.isEmpty(); if (usePowerCalculators && (monotonicStartTime != MonotonicClock.UNDEFINED || monotonicEndTime != MonotonicClock.UNDEFINED)) { Slog.wtfStack(TAG, "BatteryUsageStatsQuery specifies a time " + "range that is incompatible with PowerCalculators: " + powerCalculators); } usePowerCalculators = false; } if (monotonicStartTime == MonotonicClock.UNDEFINED) { Loading @@ -371,7 +373,7 @@ public class BatteryUsageStatsProvider { batteryUsageStatsBuilder.setStatsEndTimestamp(currentTimeMs); } if (!powerCalculators.isEmpty()) { if (usePowerCalculators) { final long realtimeUs = mClock.elapsedRealtime() * 1000; final long uptimeUs = mClock.uptimeMillis() * 1000; final int[] powerComponents = query.getPowerComponents(); Loading services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ public final class BatteryStatsServiceTest { Handler handler = new Handler(mBgThread.getLooper()); mBatteryStatsService = new BatteryStatsService(context, systemDir); mBatteryStatsService.setRailsStatsCollectionEnabled(false); mBatteryStatsService.systemServicesReady(); } @After Loading Loading
services/core/java/com/android/server/am/BatteryStatsService.java +4 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.os.BatteryUsageStatsQuery; import android.os.Binder; import android.os.BluetoothBatteryStats; import android.os.Bundle; import android.os.ConditionVariable; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; Loading Loading @@ -213,6 +214,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub private final HandlerThread mHandlerThread; private final Handler mHandler; private final Object mLock = new Object(); private final ConditionVariable mSystemReady = new ConditionVariable(false); private final Object mPowerStatsLock = new Object(); @GuardedBy("mPowerStatsLock") Loading Loading @@ -413,6 +415,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub mHandlerThread = new HandlerThread("batterystats-handler"); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper()); mHandler.post(mSystemReady::block); mMonotonicClock = new MonotonicClock(new File(systemDir, "monotonic_clock.xml")); mPowerProfile = new PowerProfile(context); Loading Loading @@ -648,6 +651,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub dataConnectionStats.startMonitoring(); registerStatsCallbacks(); mSystemReady.open(); } private static boolean isBatteryUsageStatsAccumulationSupported() { Loading
services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +10 −8 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.BatteryUsageStatsQuery; import android.os.Handler; import android.os.Process; import android.util.Log; import android.util.Slog; import android.util.SparseArray; import com.android.internal.os.Clock; Loading Loading @@ -350,13 +351,14 @@ public class BatteryUsageStatsProvider { synchronized (stats) { final List<PowerCalculator> powerCalculators = getPowerCalculators(); if (!powerCalculators.isEmpty()) { if (monotonicStartTime != MonotonicClock.UNDEFINED || monotonicEndTime != MonotonicClock.UNDEFINED) { throw new IllegalStateException("BatteryUsageStatsQuery specifies a time " boolean usePowerCalculators = !powerCalculators.isEmpty(); if (usePowerCalculators && (monotonicStartTime != MonotonicClock.UNDEFINED || monotonicEndTime != MonotonicClock.UNDEFINED)) { Slog.wtfStack(TAG, "BatteryUsageStatsQuery specifies a time " + "range that is incompatible with PowerCalculators: " + powerCalculators); } usePowerCalculators = false; } if (monotonicStartTime == MonotonicClock.UNDEFINED) { Loading @@ -371,7 +373,7 @@ public class BatteryUsageStatsProvider { batteryUsageStatsBuilder.setStatsEndTimestamp(currentTimeMs); } if (!powerCalculators.isEmpty()) { if (usePowerCalculators) { final long realtimeUs = mClock.elapsedRealtime() * 1000; final long uptimeUs = mClock.uptimeMillis() * 1000; final int[] powerComponents = query.getPowerComponents(); Loading
services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ public final class BatteryStatsServiceTest { Handler handler = new Handler(mBgThread.getLooper()); mBatteryStatsService = new BatteryStatsService(context, systemDir); mBatteryStatsService.setRailsStatsCollectionEnabled(false); mBatteryStatsService.systemServicesReady(); } @After Loading