diff options
| author | 2018-03-27 21:45:46 +0000 | |
|---|---|---|
| committer | 2018-03-27 21:45:46 +0000 | |
| commit | dda147e179d5dc190191866221d74ae42675a263 (patch) | |
| tree | dc05b1ba6307fe3d9838050cdf0cd1d60a415865 | |
| parent | aa614fafc7278542419d5e4ad911b5c5ff05f854 (diff) | |
| parent | 235343daec5c052fc20b7186967ff60b0a1a6df7 (diff) | |
Merge "Fix statsd logging in BatteryStats (nesting prob.)" into pi-dev
| -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 0cb9efd8f437..209564910a78 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -292,7 +292,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; @@ -330,7 +330,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; @@ -349,7 +349,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; @@ -366,7 +366,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; } @@ -374,7 +374,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; @@ -382,6 +382,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; } @@ -390,7 +392,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; @@ -398,6 +400,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; } @@ -406,7 +410,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; @@ -414,6 +418,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; } @@ -422,7 +428,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; @@ -430,6 +436,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 9993a76ec18a..8117bf7254fd 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; @@ -6014,7 +6013,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) @@ -6025,6 +6023,7 @@ public class BatteryStatsImpl extends BatteryStats { } else { stopAllWifiSignalStrengthTimersLocked(-1); } + StatsLog.write(StatsLog.WIFI_SIGNAL_STRENGTH_CHANGED, strengthBin); mWifiSignalStrengthBin = strengthBin; } } @@ -7265,25 +7264,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); } } @@ -7297,25 +7288,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); } } @@ -7329,25 +7312,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); } } @@ -7361,25 +7336,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); } } @@ -10055,8 +10022,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); } } @@ -10064,10 +10029,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); - } } } @@ -10075,9 +10036,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); } } @@ -10085,11 +10043,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); @@ -10197,10 +10150,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) { @@ -10208,10 +10157,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 46873d5f37e7..b338029d4e86 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.BroadcastReceiver; import android.content.Context; @@ -442,6 +443,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); } } @@ -449,6 +452,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); } } @@ -456,6 +461,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); } } @@ -463,6 +471,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); } } @@ -577,6 +588,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); } } @@ -584,6 +597,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); } } @@ -735,6 +750,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); } } @@ -742,6 +759,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); } } @@ -749,6 +768,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); } } @@ -756,6 +777,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); } } @@ -763,6 +786,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); } } @@ -770,6 +795,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); } } @@ -777,6 +804,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); } } @@ -784,6 +813,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); } } @@ -792,6 +823,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"); } @@ -800,6 +833,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); } } @@ -807,6 +842,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); } } @@ -814,6 +851,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); } } |