Loading core/java/android/os/BatteryConsumer.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -209,7 +209,8 @@ public abstract class BatteryConsumer { POWER_COMPONENT_VIDEO, POWER_COMPONENT_VIDEO, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_CAMERA, POWER_COMPONENT_CAMERA, POWER_COMPONENT_GNSS}; POWER_COMPONENT_GNSS, POWER_COMPONENT_SENSORS}; Arrays.sort(supportedPowerComponents); Arrays.sort(supportedPowerComponents); SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents); SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents); }; }; Loading core/java/android/os/BatteryStats.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3077,7 +3077,7 @@ public abstract class BatteryStats { public static final String[] HISTORY_EVENT_NAMES = new String[] { public static final String[] HISTORY_EVENT_NAMES = new String[] { "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn", "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn", "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive", "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive", "tmpwhitelist", "screenwake", "wakeupap", "longwake", "est_capacity", "state" "tmpwhitelist", "screenwake", "wakeupap", "longwake", "state" }; }; public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { Loading services/core/java/com/android/server/am/BatteryStatsService.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.server.power.stats.PowerStatsScheduler; import com.android.server.power.stats.PowerStatsStore; import com.android.server.power.stats.PowerStatsStore; import com.android.server.power.stats.PowerStatsUidResolver; import com.android.server.power.stats.PowerStatsUidResolver; import com.android.server.power.stats.ScreenPowerStatsProcessor; import com.android.server.power.stats.ScreenPowerStatsProcessor; import com.android.server.power.stats.SensorPowerStatsProcessor; import com.android.server.power.stats.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes; import com.android.server.power.stats.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes; import com.android.server.power.stats.VideoPowerStatsProcessor; import com.android.server.power.stats.VideoPowerStatsProcessor; import com.android.server.power.stats.WifiPowerStatsProcessor; import com.android.server.power.stats.WifiPowerStatsProcessor; Loading Loading @@ -595,6 +596,17 @@ public final class BatteryStatsService extends IBatteryStats.Stub .setProcessor( .setProcessor( new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SENSORS) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor(new SensorPowerStatsProcessor( () -> mContext.getSystemService(SensorManager.class))); config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new) config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new) .trackDeviceStates( .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_POWER, Loading Loading @@ -706,6 +718,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryConsumer.POWER_COMPONENT_GNSS, BatteryConsumer.POWER_COMPONENT_GNSS, Flags.streamlinedMiscBatteryStats()); Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( BatteryConsumer.POWER_COMPONENT_SENSORS, Flags.streamlinedMiscBatteryStats()); mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( Loading services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +4 −12 Original line number Original line Diff line number Diff line Loading @@ -5431,8 +5431,6 @@ public class BatteryStatsImpl extends BatteryStats { } } } } int mSensorNesting; @GuardedBy("this") @GuardedBy("this") public void noteStartSensorLocked(int uid, int sensor) { public void noteStartSensorLocked(int uid, int sensor) { noteStartSensorLocked(uid, sensor, mClock.elapsedRealtime(), mClock.uptimeMillis()); noteStartSensorLocked(uid, sensor, mClock.elapsedRealtime(), mClock.uptimeMillis()); Loading @@ -5441,11 +5439,8 @@ public class BatteryStatsImpl extends BatteryStats { @GuardedBy("this") @GuardedBy("this") public void noteStartSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { public void noteStartSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { uid = mapUid(uid); uid = mapUid(uid); if (mSensorNesting == 0) { mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_SENSOR_ON_FLAG); HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor)); } mSensorNesting++; getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteStartSensor(sensor, elapsedRealtimeMs); .noteStartSensor(sensor, elapsedRealtimeMs); } } Loading @@ -5458,11 +5453,8 @@ public class BatteryStatsImpl extends BatteryStats { @GuardedBy("this") @GuardedBy("this") public void noteStopSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { public void noteStopSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { uid = mapUid(uid); uid = mapUid(uid); mSensorNesting--; if (mSensorNesting == 0) { mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_SENSOR_ON_FLAG); HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor)); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteStopSensor(sensor, elapsedRealtimeMs); .noteStopSensor(sensor, elapsedRealtimeMs); } } Loading services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -93,8 +93,10 @@ public class BatteryUsageStatsProvider { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)) { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)) { mPowerCalculators.add(new BluetoothPowerCalculator(mPowerProfile)); mPowerCalculators.add(new BluetoothPowerCalculator(mPowerProfile)); } } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_SENSORS)) { mPowerCalculators.add(new SensorPowerCalculator( mPowerCalculators.add(new SensorPowerCalculator( mContext.getSystemService(SensorManager.class))); mContext.getSystemService(SensorManager.class))); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); } } Loading Loading
core/java/android/os/BatteryConsumer.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -209,7 +209,8 @@ public abstract class BatteryConsumer { POWER_COMPONENT_VIDEO, POWER_COMPONENT_VIDEO, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_CAMERA, POWER_COMPONENT_CAMERA, POWER_COMPONENT_GNSS}; POWER_COMPONENT_GNSS, POWER_COMPONENT_SENSORS}; Arrays.sort(supportedPowerComponents); Arrays.sort(supportedPowerComponents); SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents); SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents); }; }; Loading
core/java/android/os/BatteryStats.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3077,7 +3077,7 @@ public abstract class BatteryStats { public static final String[] HISTORY_EVENT_NAMES = new String[] { public static final String[] HISTORY_EVENT_NAMES = new String[] { "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn", "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn", "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive", "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive", "tmpwhitelist", "screenwake", "wakeupap", "longwake", "est_capacity", "state" "tmpwhitelist", "screenwake", "wakeupap", "longwake", "state" }; }; public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { Loading
services/core/java/com/android/server/am/BatteryStatsService.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -144,6 +144,7 @@ import com.android.server.power.stats.PowerStatsScheduler; import com.android.server.power.stats.PowerStatsStore; import com.android.server.power.stats.PowerStatsStore; import com.android.server.power.stats.PowerStatsUidResolver; import com.android.server.power.stats.PowerStatsUidResolver; import com.android.server.power.stats.ScreenPowerStatsProcessor; import com.android.server.power.stats.ScreenPowerStatsProcessor; import com.android.server.power.stats.SensorPowerStatsProcessor; import com.android.server.power.stats.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes; import com.android.server.power.stats.SystemServerCpuThreadReader.SystemServiceCpuThreadTimes; import com.android.server.power.stats.VideoPowerStatsProcessor; import com.android.server.power.stats.VideoPowerStatsProcessor; import com.android.server.power.stats.WifiPowerStatsProcessor; import com.android.server.power.stats.WifiPowerStatsProcessor; Loading Loading @@ -595,6 +596,17 @@ public final class BatteryStatsService extends IBatteryStats.Stub .setProcessor( .setProcessor( new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); new GnssPowerStatsProcessor(mPowerProfile, mPowerStatsUidResolver)); config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_SENSORS) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) .trackUidStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) .setProcessor(new SensorPowerStatsProcessor( () -> mContext.getSystemService(SensorManager.class))); config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new) config.trackCustomPowerComponents(CustomEnergyConsumerPowerStatsProcessor::new) .trackDeviceStates( .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_POWER, Loading Loading @@ -706,6 +718,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryConsumer.POWER_COMPONENT_GNSS, BatteryConsumer.POWER_COMPONENT_GNSS, Flags.streamlinedMiscBatteryStats()); Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( BatteryConsumer.POWER_COMPONENT_SENSORS, Flags.streamlinedMiscBatteryStats()); mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_CAMERA, Flags.streamlinedMiscBatteryStats()); Flags.streamlinedMiscBatteryStats()); mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( mBatteryUsageStatsProvider.setPowerStatsExporterEnabled( Loading
services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +4 −12 Original line number Original line Diff line number Diff line Loading @@ -5431,8 +5431,6 @@ public class BatteryStatsImpl extends BatteryStats { } } } } int mSensorNesting; @GuardedBy("this") @GuardedBy("this") public void noteStartSensorLocked(int uid, int sensor) { public void noteStartSensorLocked(int uid, int sensor) { noteStartSensorLocked(uid, sensor, mClock.elapsedRealtime(), mClock.uptimeMillis()); noteStartSensorLocked(uid, sensor, mClock.elapsedRealtime(), mClock.uptimeMillis()); Loading @@ -5441,11 +5439,8 @@ public class BatteryStatsImpl extends BatteryStats { @GuardedBy("this") @GuardedBy("this") public void noteStartSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { public void noteStartSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { uid = mapUid(uid); uid = mapUid(uid); if (mSensorNesting == 0) { mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, mHistory.recordStateStartEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_SENSOR_ON_FLAG); HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor)); } mSensorNesting++; getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteStartSensor(sensor, elapsedRealtimeMs); .noteStartSensor(sensor, elapsedRealtimeMs); } } Loading @@ -5458,11 +5453,8 @@ public class BatteryStatsImpl extends BatteryStats { @GuardedBy("this") @GuardedBy("this") public void noteStopSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { public void noteStopSensorLocked(int uid, int sensor, long elapsedRealtimeMs, long uptimeMs) { uid = mapUid(uid); uid = mapUid(uid); mSensorNesting--; if (mSensorNesting == 0) { mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, mHistory.recordStateStopEvent(elapsedRealtimeMs, uptimeMs, HistoryItem.STATE_SENSOR_ON_FLAG); HistoryItem.STATE_SENSOR_ON_FLAG, uid, "sensor:0x" + Integer.toHexString(sensor)); } getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) getUidStatsLocked(uid, elapsedRealtimeMs, uptimeMs) .noteStopSensor(sensor, elapsedRealtimeMs); .noteStopSensor(sensor, elapsedRealtimeMs); } } Loading
services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -93,8 +93,10 @@ public class BatteryUsageStatsProvider { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)) { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_BLUETOOTH)) { mPowerCalculators.add(new BluetoothPowerCalculator(mPowerProfile)); mPowerCalculators.add(new BluetoothPowerCalculator(mPowerProfile)); } } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_SENSORS)) { mPowerCalculators.add(new SensorPowerCalculator( mPowerCalculators.add(new SensorPowerCalculator( mContext.getSystemService(SensorManager.class))); mContext.getSystemService(SensorManager.class))); } if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { if (!mPowerStatsExporterEnabled.get(BatteryConsumer.POWER_COMPONENT_GNSS)) { mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); mPowerCalculators.add(new GnssPowerCalculator(mPowerProfile)); } } Loading