Loading core/java/android/os/BatteryConsumer.java +2 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,8 @@ public abstract class BatteryConsumer { POWER_COMPONENT_AUDIO, POWER_COMPONENT_VIDEO, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_CAMERA, POWER_COMPONENT_GNSS, }; static final int COLUMN_INDEX_BATTERY_CONSUMER_TYPE = 0; Loading core/java/android/os/BatteryStats.java +2 −1 Original line number Diff line number Diff line Loading @@ -1994,7 +1994,8 @@ public abstract class BatteryStats { // STATES2 bits that are used for Power Stats tracking public static final int IMPORTANT_FOR_POWER_STATS_STATES2 = STATE2_VIDEO_ON_FLAG | STATE2_FLASHLIGHT_FLAG | STATE2_CAMERA_FLAG; STATE2_VIDEO_ON_FLAG | STATE2_FLASHLIGHT_FLAG | STATE2_CAMERA_FLAG | STATE2_GPS_SIGNAL_QUALITY_MASK; @UnsupportedAppUsage public int states2; Loading services/core/java/com/android/server/am/BatteryStatsService.java +33 −7 Original line number Diff line number Diff line Loading @@ -128,8 +128,10 @@ import com.android.server.power.stats.BatteryStatsDumpHelperImpl; import com.android.server.power.stats.BatteryStatsImpl; import com.android.server.power.stats.BatteryUsageStatsProvider; import com.android.server.power.stats.BluetoothPowerStatsProcessor; import com.android.server.power.stats.CameraPowerStatsProcessor; import com.android.server.power.stats.CpuPowerStatsProcessor; import com.android.server.power.stats.FlashlightPowerStatsProcessor; import com.android.server.power.stats.GnssPowerStatsProcessor; import com.android.server.power.stats.MobileRadioPowerStatsProcessor; import com.android.server.power.stats.PhoneCallPowerStatsProcessor; import com.android.server.power.stats.PowerStatsAggregator; Loading Loading @@ -528,8 +530,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_VIDEO) .trackDeviceStates( Loading @@ -539,9 +540,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); .setProcessor(new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT) .trackDeviceStates( Loading @@ -552,8 +551,29 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new FlashlightPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new FlashlightPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CAMERA) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new CameraPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_GNSS) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); return config; } Loading Loading @@ -639,6 +659,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryConsumer.POWER_COMPONENT_FLASHLIGHT, Flags.streamlinedMiscBatteryStats()); mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); mWorker.systemServicesReady(); mStats.systemServicesReady(mContext); mCpuWakeupStats.systemServicesReady(); Loading services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +45 −7 Original line number Diff line number Diff line Loading @@ -298,6 +298,8 @@ public class BatteryStatsImpl extends BatteryStats { private final MobileRadioPowerStatsCollector mMobileRadioPowerStatsCollector; private final WifiPowerStatsCollector mWifiPowerStatsCollector; private final BluetoothPowerStatsCollector mBluetoothPowerStatsCollector; private final CameraPowerStatsCollector mCameraPowerStatsCollector; private final GnssPowerStatsCollector mGnssPowerStatsCollector; private final SparseBooleanArray mPowerStatsCollectorEnabled = new SparseBooleanArray(); private final WifiPowerStatsCollector.WifiStatsRetriever mWifiStatsRetriever = new WifiPowerStatsCollector.WifiStatsRetriever() { Loading Loading @@ -1963,7 +1965,7 @@ public class BatteryStatsImpl extends BatteryStats { private class PowerStatsCollectorInjector implements CpuPowerStatsCollector.Injector, MobileRadioPowerStatsCollector.Injector, WifiPowerStatsCollector.Injector, BluetoothPowerStatsCollector.Injector { BluetoothPowerStatsCollector.Injector, EnergyConsumerPowerStatsCollector.Injector { private PackageManager mPackageManager; private PowerStatsCollector.ConsumedEnergyRetriever mConsumedEnergyRetriever; private NetworkStatsManager mNetworkStatsManager; Loading Loading @@ -5446,7 +5448,10 @@ public class BatteryStatsImpl extends BatteryStats { final int mappedUid = mapUid(uid); if (mGpsNesting == 0) { mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_GPS_ON_FLAG); HistoryItem.STATE_GPS_ON_FLAG, uid, "gnss"); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mGnssPowerStatsCollector.schedule(); } } mGpsNesting++; Loading @@ -5465,11 +5470,14 @@ public class BatteryStatsImpl extends BatteryStats { mGpsNesting--; if (mGpsNesting == 0) { mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_GPS_ON_FLAG); HistoryItem.STATE_GPS_ON_FLAG, uid, "gnss"); mHistory.recordGpsSignalQualityEvent(elapsedRealtimeMs, uptimeMs, GPS_SIGNAL_QUALITY_NONE); stopAllGpsSignalQualityTimersLocked(-1, elapsedRealtimeMs); mGpsSignalQualityBin = -1; if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mGnssPowerStatsCollector.schedule(); } } mFrameworkStatsLogger.gpsScanStateChanged(mapIsolatedUid(uid), workChain, /* on */ false); Loading Loading @@ -6652,14 +6660,18 @@ public class BatteryStatsImpl extends BatteryStats { uid = mapUid(uid); if (mCameraOnNesting++ == 0) { mHistory.recordState2StartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE2_CAMERA_FLAG); HistoryItem.STATE2_CAMERA_FLAG, uid, "camera"); mCameraOnTimer.startRunningLocked(elapsedRealtimeMs); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteCameraTurnedOnLocked(elapsedRealtimeMs); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mCameraPowerStatsCollector.schedule(); } else { scheduleSyncExternalStatsLocked("camera-on", ExternalStatsSync.UPDATE_CAMERA); } } @GuardedBy("this") public void noteCameraOffLocked(int uid, long elapsedRealtimeMs, long uptimeMs) { Loading @@ -6669,14 +6681,18 @@ public class BatteryStatsImpl extends BatteryStats { uid = mapUid(uid); if (--mCameraOnNesting == 0) { mHistory.recordState2StopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE2_CAMERA_FLAG); HistoryItem.STATE2_CAMERA_FLAG, uid, "camera"); mCameraOnTimer.stopRunningLocked(elapsedRealtimeMs); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteCameraTurnedOffLocked(elapsedRealtimeMs); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mCameraPowerStatsCollector.schedule(); } else { scheduleSyncExternalStatsLocked("camera-off", ExternalStatsSync.UPDATE_CAMERA); } } @GuardedBy("this") public void noteResetCameraLocked(long elapsedRealtimeMs, long uptimeMs) { Loading Loading @@ -11281,6 +11297,12 @@ public class BatteryStatsImpl extends BatteryStats { mPowerStatsCollectorInjector); mBluetoothPowerStatsCollector.addConsumer(this::recordPowerStats); mCameraPowerStatsCollector = new CameraPowerStatsCollector(mPowerStatsCollectorInjector); mCameraPowerStatsCollector.addConsumer(this::recordPowerStats); mGnssPowerStatsCollector = new GnssPowerStatsCollector(mPowerStatsCollectorInjector); mGnssPowerStatsCollector.addConsumer(this::recordPowerStats); mStartCount++; initTimersAndCounters(); mOnBattery = mOnBatteryInternal = false; Loading Loading @@ -14703,6 +14725,14 @@ public class BatteryStatsImpl extends BatteryStats { mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)); mBluetoothPowerStatsCollector.schedule(); mCameraPowerStatsCollector.setEnabled( mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)); mCameraPowerStatsCollector.schedule(); mGnssPowerStatsCollector.setEnabled( mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)); mGnssPowerStatsCollector.schedule(); mSystemReady = true; } Loading @@ -14721,6 +14751,10 @@ public class BatteryStatsImpl extends BatteryStats { return mWifiPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_BLUETOOTH: return mBluetoothPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_CAMERA: return mCameraPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_GNSS: return mGnssPowerStatsCollector; } return null; } Loading Loading @@ -16258,6 +16292,8 @@ public class BatteryStatsImpl extends BatteryStats { mMobileRadioPowerStatsCollector.forceSchedule(); mWifiPowerStatsCollector.forceSchedule(); mBluetoothPowerStatsCollector.forceSchedule(); mCameraPowerStatsCollector.forceSchedule(); mGnssPowerStatsCollector.forceSchedule(); } /** Loading @@ -16278,6 +16314,8 @@ public class BatteryStatsImpl extends BatteryStats { mMobileRadioPowerStatsCollector.collectAndDump(pw); mWifiPowerStatsCollector.collectAndDump(pw); mBluetoothPowerStatsCollector.collectAndDump(pw); mCameraPowerStatsCollector.collectAndDump(pw); mGnssPowerStatsCollector.collectAndDump(pw); } private final Runnable mWriteAsyncRunnable = () -> { services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +6 −2 Original line number Diff line number Diff line Loading @@ -95,8 +95,12 @@ public class BatteryUsageStatsProvider { } mPowerCalculators.add(new SensorPowerCalculator( mContext.getSystemService(SensorManager.class))); if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mPowerCalculators.add(new CameraPowerCalculator(mPowerProfile)); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)) { mPowerCalculators.add(new FlashlightPowerCalculator(mPowerProfile)); } Loading Loading
core/java/android/os/BatteryConsumer.java +2 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,8 @@ public abstract class BatteryConsumer { POWER_COMPONENT_AUDIO, POWER_COMPONENT_VIDEO, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_CAMERA, POWER_COMPONENT_GNSS, }; static final int COLUMN_INDEX_BATTERY_CONSUMER_TYPE = 0; Loading
core/java/android/os/BatteryStats.java +2 −1 Original line number Diff line number Diff line Loading @@ -1994,7 +1994,8 @@ public abstract class BatteryStats { // STATES2 bits that are used for Power Stats tracking public static final int IMPORTANT_FOR_POWER_STATS_STATES2 = STATE2_VIDEO_ON_FLAG | STATE2_FLASHLIGHT_FLAG | STATE2_CAMERA_FLAG; STATE2_VIDEO_ON_FLAG | STATE2_FLASHLIGHT_FLAG | STATE2_CAMERA_FLAG | STATE2_GPS_SIGNAL_QUALITY_MASK; @UnsupportedAppUsage public int states2; Loading
services/core/java/com/android/server/am/BatteryStatsService.java +33 −7 Original line number Diff line number Diff line Loading @@ -128,8 +128,10 @@ import com.android.server.power.stats.BatteryStatsDumpHelperImpl; import com.android.server.power.stats.BatteryStatsImpl; import com.android.server.power.stats.BatteryUsageStatsProvider; import com.android.server.power.stats.BluetoothPowerStatsProcessor; import com.android.server.power.stats.CameraPowerStatsProcessor; import com.android.server.power.stats.CpuPowerStatsProcessor; import com.android.server.power.stats.FlashlightPowerStatsProcessor; import com.android.server.power.stats.GnssPowerStatsProcessor; import com.android.server.power.stats.MobileRadioPowerStatsProcessor; import com.android.server.power.stats.PhoneCallPowerStatsProcessor; import com.android.server.power.stats.PowerStatsAggregator; Loading Loading @@ -528,8 +530,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new AudioPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_VIDEO) .trackDeviceStates( Loading @@ -539,9 +540,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); .setProcessor(new VideoPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT) .trackDeviceStates( Loading @@ -552,8 +551,29 @@ public final class BatteryStatsService extends IBatteryStats.Stub AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new FlashlightPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new FlashlightPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CAMERA) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new CameraPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_GNSS) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor( new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); return config; } Loading Loading @@ -639,6 +659,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryConsumer.POWER_COMPONENT_FLASHLIGHT, Flags.streamlinedMiscBatteryStats()); mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); mWorker.systemServicesReady(); mStats.systemServicesReady(mContext); mCpuWakeupStats.systemServicesReady(); Loading
services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +45 −7 Original line number Diff line number Diff line Loading @@ -298,6 +298,8 @@ public class BatteryStatsImpl extends BatteryStats { private final MobileRadioPowerStatsCollector mMobileRadioPowerStatsCollector; private final WifiPowerStatsCollector mWifiPowerStatsCollector; private final BluetoothPowerStatsCollector mBluetoothPowerStatsCollector; private final CameraPowerStatsCollector mCameraPowerStatsCollector; private final GnssPowerStatsCollector mGnssPowerStatsCollector; private final SparseBooleanArray mPowerStatsCollectorEnabled = new SparseBooleanArray(); private final WifiPowerStatsCollector.WifiStatsRetriever mWifiStatsRetriever = new WifiPowerStatsCollector.WifiStatsRetriever() { Loading Loading @@ -1963,7 +1965,7 @@ public class BatteryStatsImpl extends BatteryStats { private class PowerStatsCollectorInjector implements CpuPowerStatsCollector.Injector, MobileRadioPowerStatsCollector.Injector, WifiPowerStatsCollector.Injector, BluetoothPowerStatsCollector.Injector { BluetoothPowerStatsCollector.Injector, EnergyConsumerPowerStatsCollector.Injector { private PackageManager mPackageManager; private PowerStatsCollector.ConsumedEnergyRetriever mConsumedEnergyRetriever; private NetworkStatsManager mNetworkStatsManager; Loading Loading @@ -5446,7 +5448,10 @@ public class BatteryStatsImpl extends BatteryStats { final int mappedUid = mapUid(uid); if (mGpsNesting == 0) { mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_GPS_ON_FLAG); HistoryItem.STATE_GPS_ON_FLAG, uid, "gnss"); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mGnssPowerStatsCollector.schedule(); } } mGpsNesting++; Loading @@ -5465,11 +5470,14 @@ public class BatteryStatsImpl extends BatteryStats { mGpsNesting--; if (mGpsNesting == 0) { mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_GPS_ON_FLAG); HistoryItem.STATE_GPS_ON_FLAG, uid, "gnss"); mHistory.recordGpsSignalQualityEvent(elapsedRealtimeMs, uptimeMs, GPS_SIGNAL_QUALITY_NONE); stopAllGpsSignalQualityTimersLocked(-1, elapsedRealtimeMs); mGpsSignalQualityBin = -1; if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mGnssPowerStatsCollector.schedule(); } } mFrameworkStatsLogger.gpsScanStateChanged(mapIsolatedUid(uid), workChain, /* on */ false); Loading Loading @@ -6652,14 +6660,18 @@ public class BatteryStatsImpl extends BatteryStats { uid = mapUid(uid); if (mCameraOnNesting++ == 0) { mHistory.recordState2StartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE2_CAMERA_FLAG); HistoryItem.STATE2_CAMERA_FLAG, uid, "camera"); mCameraOnTimer.startRunningLocked(elapsedRealtimeMs); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteCameraTurnedOnLocked(elapsedRealtimeMs); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mCameraPowerStatsCollector.schedule(); } else { scheduleSyncExternalStatsLocked("camera-on", ExternalStatsSync.UPDATE_CAMERA); } } @GuardedBy("this") public void noteCameraOffLocked(int uid, long elapsedRealtimeMs, long uptimeMs) { Loading @@ -6669,14 +6681,18 @@ public class BatteryStatsImpl extends BatteryStats { uid = mapUid(uid); if (--mCameraOnNesting == 0) { mHistory.recordState2StopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE2_CAMERA_FLAG); HistoryItem.STATE2_CAMERA_FLAG, uid, "camera"); mCameraOnTimer.stopRunningLocked(elapsedRealtimeMs); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteCameraTurnedOffLocked(elapsedRealtimeMs); if (mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mCameraPowerStatsCollector.schedule(); } else { scheduleSyncExternalStatsLocked("camera-off", ExternalStatsSync.UPDATE_CAMERA); } } @GuardedBy("this") public void noteResetCameraLocked(long elapsedRealtimeMs, long uptimeMs) { Loading Loading @@ -11281,6 +11297,12 @@ public class BatteryStatsImpl extends BatteryStats { mPowerStatsCollectorInjector); mBluetoothPowerStatsCollector.addConsumer(this::recordPowerStats); mCameraPowerStatsCollector = new CameraPowerStatsCollector(mPowerStatsCollectorInjector); mCameraPowerStatsCollector.addConsumer(this::recordPowerStats); mGnssPowerStatsCollector = new GnssPowerStatsCollector(mPowerStatsCollectorInjector); mGnssPowerStatsCollector.addConsumer(this::recordPowerStats); mStartCount++; initTimersAndCounters(); mOnBattery = mOnBatteryInternal = false; Loading Loading @@ -14703,6 +14725,14 @@ public class BatteryStatsImpl extends BatteryStats { mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)); mBluetoothPowerStatsCollector.schedule(); mCameraPowerStatsCollector.setEnabled( mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)); mCameraPowerStatsCollector.schedule(); mGnssPowerStatsCollector.setEnabled( mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)); mGnssPowerStatsCollector.schedule(); mSystemReady = true; } Loading @@ -14721,6 +14751,10 @@ public class BatteryStatsImpl extends BatteryStats { return mWifiPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_BLUETOOTH: return mBluetoothPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_CAMERA: return mCameraPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_GNSS: return mGnssPowerStatsCollector; } return null; } Loading Loading @@ -16258,6 +16292,8 @@ public class BatteryStatsImpl extends BatteryStats { mMobileRadioPowerStatsCollector.forceSchedule(); mWifiPowerStatsCollector.forceSchedule(); mBluetoothPowerStatsCollector.forceSchedule(); mCameraPowerStatsCollector.forceSchedule(); mGnssPowerStatsCollector.forceSchedule(); } /** Loading @@ -16278,6 +16314,8 @@ public class BatteryStatsImpl extends BatteryStats { mMobileRadioPowerStatsCollector.collectAndDump(pw); mWifiPowerStatsCollector.collectAndDump(pw); mBluetoothPowerStatsCollector.collectAndDump(pw); mCameraPowerStatsCollector.collectAndDump(pw); mGnssPowerStatsCollector.collectAndDump(pw); } private final Runnable mWriteAsyncRunnable = () -> {
services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +6 −2 Original line number Diff line number Diff line Loading @@ -95,8 +95,12 @@ public class BatteryUsageStatsProvider { } mPowerCalculators.add(new SensorPowerCalculator( mContext.getSystemService(SensorManager.class))); if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_CAMERA)) { mPowerCalculators.add(new CameraPowerCalculator(mPowerProfile)); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)) { mPowerCalculators.add(new FlashlightPowerCalculator(mPowerProfile)); } Loading