diff options
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 24 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 57 | ||||
| -rw-r--r-- | core/proto/android/app/job/enums.proto | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/BatteryStatsService.java | 39 |
4 files changed, 57 insertions, 64 deletions
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 99611f4121d7..3672cac91fdc 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -291,7 +291,7 @@ message BleScanResultReceived { * Logs when a sensor state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message SensorStateChanged { repeated AttributionNode attribution_node = 1; @@ -329,7 +329,7 @@ message GpsScanStateChanged { * Logs when a sync manager sync state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message SyncStateChanged { repeated AttributionNode attribution_node = 1; @@ -348,7 +348,7 @@ message SyncStateChanged { * Logs when a job scheduler job state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message ScheduledJobStateChanged { repeated AttributionNode attribution_node = 1; @@ -365,7 +365,7 @@ message ScheduledJobStateChanged { // The reason a job has stopped. // This is only applicable when the state is FINISHED. - // The default value is CANCELED. + // The default value is STOP_REASON_UNKNOWN. optional android.app.job.StopReasonEnum stop_reason = 4; } @@ -373,7 +373,7 @@ message ScheduledJobStateChanged { * Logs when the audio state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message AudioStateChanged { repeated AttributionNode attribution_node = 1; @@ -381,6 +381,8 @@ message AudioStateChanged { enum State { OFF = 0; ON = 1; + // RESET indicates all audio stopped. Used when it (re)starts (e.g. after it crashes). + RESET = 2; } optional State state = 2; } @@ -389,7 +391,7 @@ message AudioStateChanged { * Logs when the video codec state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message MediaCodecActivityChanged { repeated AttributionNode attribution_node = 1; @@ -397,6 +399,8 @@ message MediaCodecActivityChanged { enum State { OFF = 0; ON = 1; + // RESET indicates all mediaCodec stopped. Used when it (re)starts (e.g. after it crashes). + RESET = 2; } optional State state = 2; } @@ -405,7 +409,7 @@ message MediaCodecActivityChanged { * Logs when the flashlight state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message FlashlightStateChanged { repeated AttributionNode attribution_node = 1; @@ -413,6 +417,8 @@ message FlashlightStateChanged { enum State { OFF = 0; ON = 1; + // RESET indicates all flashlight stopped. Used when it (re)starts (e.g. after it crashes). + RESET = 2; } optional State state = 2; } @@ -421,7 +427,7 @@ message FlashlightStateChanged { * Logs when the camera state changes. * * Logged from: - * frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java + * frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java */ message CameraStateChanged { repeated AttributionNode attribution_node = 1; @@ -429,6 +435,8 @@ message CameraStateChanged { enum State { OFF = 0; ON = 1; + // RESET indicates all camera stopped. Used when it (re)starts (e.g. after it crashes). + RESET = 2; } optional State state = 2; } diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 3c150c1d3aeb..a4c1ae55c0d8 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -19,7 +19,6 @@ package com.android.internal.os; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; -import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.bluetooth.UidTraffic; import android.content.ContentResolver; @@ -5999,7 +5998,6 @@ public class BatteryStatsImpl extends BatteryStats { if (strengthBin >= 0) { if (!mWifiSignalStrengthsTimer[strengthBin].isRunningLocked()) { mWifiSignalStrengthsTimer[strengthBin].startRunningLocked(elapsedRealtime); - StatsLog.write(StatsLog.WIFI_SIGNAL_STRENGTH_CHANGED, strengthBin); } mHistoryCur.states2 = (mHistoryCur.states2&~HistoryItem.STATE2_WIFI_SIGNAL_STRENGTH_MASK) @@ -6010,6 +6008,7 @@ public class BatteryStatsImpl extends BatteryStats { } else { stopAllWifiSignalStrengthTimersLocked(-1); } + StatsLog.write(StatsLog.WIFI_SIGNAL_STRENGTH_CHANGED, strengthBin); mWifiSignalStrengthBin = strengthBin; } } @@ -7250,25 +7249,17 @@ public class BatteryStatsImpl extends BatteryStats { public void noteAudioTurnedOnLocked(long elapsedRealtimeMs) { createAudioTurnedOnTimerLocked().startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, getUid(), null, - StatsLog.AUDIO_STATE_CHANGED__STATE__ON); } public void noteAudioTurnedOffLocked(long elapsedRealtimeMs) { if (mAudioTurnedOnTimer != null) { mAudioTurnedOnTimer.stopRunningLocked(elapsedRealtimeMs); - if (!mAudioTurnedOnTimer.isRunningLocked()) { // only tell statsd if truly stopped - StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, getUid(), null, - StatsLog.AUDIO_STATE_CHANGED__STATE__OFF); - } } } public void noteResetAudioLocked(long elapsedRealtimeMs) { if (mAudioTurnedOnTimer != null) { mAudioTurnedOnTimer.stopAllRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, getUid(), null, - StatsLog.AUDIO_STATE_CHANGED__STATE__OFF); } } @@ -7282,25 +7273,17 @@ public class BatteryStatsImpl extends BatteryStats { public void noteVideoTurnedOnLocked(long elapsedRealtimeMs) { createVideoTurnedOnTimerLocked().startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, getUid(), null, - StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__ON); } public void noteVideoTurnedOffLocked(long elapsedRealtimeMs) { if (mVideoTurnedOnTimer != null) { mVideoTurnedOnTimer.stopRunningLocked(elapsedRealtimeMs); - if (!mVideoTurnedOnTimer.isRunningLocked()) { // only tell statsd if truly stopped - StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, getUid(), - null, StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__OFF); - } } } public void noteResetVideoLocked(long elapsedRealtimeMs) { if (mVideoTurnedOnTimer != null) { mVideoTurnedOnTimer.stopAllRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, getUid(), null, - StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__OFF); } } @@ -7314,25 +7297,17 @@ public class BatteryStatsImpl extends BatteryStats { public void noteFlashlightTurnedOnLocked(long elapsedRealtimeMs) { createFlashlightTurnedOnTimerLocked().startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, getUid(), null, - StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__ON); } public void noteFlashlightTurnedOffLocked(long elapsedRealtimeMs) { if (mFlashlightTurnedOnTimer != null) { mFlashlightTurnedOnTimer.stopRunningLocked(elapsedRealtimeMs); - if (!mFlashlightTurnedOnTimer.isRunningLocked()) { - StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, getUid(), null, - StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__OFF); - } } } public void noteResetFlashlightLocked(long elapsedRealtimeMs) { if (mFlashlightTurnedOnTimer != null) { mFlashlightTurnedOnTimer.stopAllRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, getUid(), null, - StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__OFF); } } @@ -7346,25 +7321,17 @@ public class BatteryStatsImpl extends BatteryStats { public void noteCameraTurnedOnLocked(long elapsedRealtimeMs) { createCameraTurnedOnTimerLocked().startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, getUid(), null, - StatsLog.CAMERA_STATE_CHANGED__STATE__ON); } public void noteCameraTurnedOffLocked(long elapsedRealtimeMs) { if (mCameraTurnedOnTimer != null) { mCameraTurnedOnTimer.stopRunningLocked(elapsedRealtimeMs); - if (!mCameraTurnedOnTimer.isRunningLocked()) { // only tell statsd if truly stopped - StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, getUid(), null, - StatsLog.CAMERA_STATE_CHANGED__STATE__OFF); - } } } public void noteResetCameraLocked(long elapsedRealtimeMs) { if (mCameraTurnedOnTimer != null) { mCameraTurnedOnTimer.stopAllRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, getUid(), null, - StatsLog.CAMERA_STATE_CHANGED__STATE__OFF); } } @@ -10040,8 +10007,6 @@ public class BatteryStatsImpl extends BatteryStats { DualTimer t = mSyncStats.startObject(name); if (t != null) { t.startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, getUid(), null, name, - StatsLog.SYNC_STATE_CHANGED__STATE__ON); } } @@ -10049,10 +10014,6 @@ public class BatteryStatsImpl extends BatteryStats { DualTimer t = mSyncStats.stopObject(name); if (t != null) { t.stopRunningLocked(elapsedRealtimeMs); - if (!t.isRunningLocked()) { // only tell statsd if truly stopped - StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, getUid(), null, name, - StatsLog.SYNC_STATE_CHANGED__STATE__OFF); - } } } @@ -10060,9 +10021,6 @@ public class BatteryStatsImpl extends BatteryStats { DualTimer t = mJobStats.startObject(name); if (t != null) { t.startRunningLocked(elapsedRealtimeMs); - StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, getUid(), null, - name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, - JobProtoEnums.STOP_REASON_CANCELLED); } } @@ -10070,11 +10028,6 @@ public class BatteryStatsImpl extends BatteryStats { DualTimer t = mJobStats.stopObject(name); if (t != null) { t.stopRunningLocked(elapsedRealtimeMs); - if (!t.isRunningLocked()) { // only tell statsd if truly stopped - StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, getUid(), null, - name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, - stopReason); - } } if (mBsi.mOnBatteryTimeBase.isRunning()) { SparseIntArray types = mJobCompletions.get(name); @@ -10182,10 +10135,6 @@ public class BatteryStatsImpl extends BatteryStats { public void noteStartSensor(int sensor, long elapsedRealtimeMs) { DualTimer t = getSensorTimerLocked(sensor, /* create= */ true); t.startRunningLocked(elapsedRealtimeMs); - if (sensor != Sensor.GPS) { - StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, getUid(), null, sensor, - StatsLog.SENSOR_STATE_CHANGED__STATE__ON); - } } public void noteStopSensor(int sensor, long elapsedRealtimeMs) { @@ -10193,10 +10142,6 @@ public class BatteryStatsImpl extends BatteryStats { DualTimer t = getSensorTimerLocked(sensor, false); if (t != null) { t.stopRunningLocked(elapsedRealtimeMs); - if (sensor != Sensor.GPS) { - StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, getUid(), null, - sensor, StatsLog.SENSOR_STATE_CHANGED__STATE__OFF); - } } } diff --git a/core/proto/android/app/job/enums.proto b/core/proto/android/app/job/enums.proto index 0f14f20e586a..17bf4fb1cb6a 100644 --- a/core/proto/android/app/job/enums.proto +++ b/core/proto/android/app/job/enums.proto @@ -24,6 +24,7 @@ option java_multiple_files = true; // Reasons a job is stopped. // Primarily used in android.app.job.JobParameters.java. enum StopReasonEnum { + STOP_REASON_UNKNOWN = -1; STOP_REASON_CANCELLED = 0; STOP_REASON_CONSTRAINTS_NOT_SATISFIED = 1; STOP_REASON_PREEMPT = 2; diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 3c49eceb4853..2900fbf7023e 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -17,6 +17,7 @@ package com.android.server.am; import android.app.ActivityManager; +import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.Context; import android.content.pm.ApplicationInfo; @@ -438,6 +439,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteSyncStartLocked(name, uid); + StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, uid, null, name, + StatsLog.SYNC_STATE_CHANGED__STATE__ON); } } @@ -445,6 +448,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteSyncFinishLocked(name, uid); + StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, uid, null, name, + StatsLog.SYNC_STATE_CHANGED__STATE__OFF); } } @@ -452,6 +457,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteJobStartLocked(name, uid); + StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, + name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, + JobProtoEnums.STOP_REASON_UNKNOWN); } } @@ -459,6 +467,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteJobFinishLocked(name, uid, stopReason); + StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, + name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, + stopReason); } } @@ -573,6 +584,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteStartSensorLocked(uid, sensor); + StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, uid, null, sensor, + StatsLog.SENSOR_STATE_CHANGED__STATE__ON); } } @@ -580,6 +593,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteStopSensorLocked(uid, sensor); + StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, uid, null, + sensor, StatsLog.SENSOR_STATE_CHANGED__STATE__OFF); } } @@ -724,6 +739,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteAudioOnLocked(uid); + StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null, + StatsLog.AUDIO_STATE_CHANGED__STATE__ON); } } @@ -731,6 +748,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteAudioOffLocked(uid); + StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null, + StatsLog.AUDIO_STATE_CHANGED__STATE__OFF); } } @@ -738,6 +757,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteVideoOnLocked(uid); + StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, uid, null, + StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__ON); } } @@ -745,6 +766,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteVideoOffLocked(uid); + StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, uid, + null, StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__OFF); } } @@ -752,6 +775,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteResetAudioLocked(); + StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, -1, null, + StatsLog.AUDIO_STATE_CHANGED__STATE__RESET); } } @@ -759,6 +784,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteResetVideoLocked(); + StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED, -1, null, + StatsLog.MEDIA_CODEC_ACTIVITY_CHANGED__STATE__RESET); } } @@ -766,6 +793,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteFlashlightOnLocked(uid); + StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, uid, null, + StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__ON); } } @@ -773,6 +802,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteFlashlightOffLocked(uid); + StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, uid, null, + StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__OFF); } } @@ -781,6 +812,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub if (DBG) Slog.d(TAG, "begin noteStartCamera"); synchronized (mStats) { mStats.noteCameraOnLocked(uid); + StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, uid, null, + StatsLog.CAMERA_STATE_CHANGED__STATE__ON); } if (DBG) Slog.d(TAG, "end noteStartCamera"); } @@ -789,6 +822,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteCameraOffLocked(uid); + StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, uid, null, + StatsLog.CAMERA_STATE_CHANGED__STATE__OFF); } } @@ -796,6 +831,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteResetCameraLocked(); + StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, -1, null, + StatsLog.CAMERA_STATE_CHANGED__STATE__RESET); } } @@ -803,6 +840,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub enforceCallingPermission(); synchronized (mStats) { mStats.noteResetFlashlightLocked(); + StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, -1, null, + StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__RESET); } } |