diff options
| author | 2019-05-23 16:54:14 +0000 | |
|---|---|---|
| committer | 2019-05-23 16:54:14 +0000 | |
| commit | a2fcdafa4122011cf0631fb6ee07c355d8a31471 (patch) | |
| tree | 4dbde8214ea77e076ac193b5b9dc9a8786acf65d | |
| parent | 4292c260dcf5f4b84cb8e520cb16248cd95dd62b (diff) | |
| parent | 3389f152ad3242654685d77f291d4d6a002c4152 (diff) | |
Merge "Add worksource AAB bucket to WakeupAlarmOccurred WW atom." into qt-dev
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 13 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 37 |
2 files changed, 44 insertions, 6 deletions
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 24df8838e100..7646c3c89014 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -994,6 +994,19 @@ message WakeupAlarmOccurred { // Name of source package (for historical reasons, since BatteryStats tracked it). optional string package_name = 3; + + // These enum values match the STANDBY_BUCKET_XXX constants defined in UsageStatsManager.java. + enum Bucket { + UNKNOWN = 0; + EXEMPTED = 5; + ACTIVE = 10; + WORKING_SET = 20; + FREQUENT = 30; + RARE = 40; + NEVER = 50; + } + // The App Standby bucket of the app that scheduled the alarm at the time the alarm fired. + optional Bucket app_standby_bucket = 4; } /** diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index a809d2194256..7a9375373557 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -8457,18 +8457,43 @@ public class ActivityManagerService extends IActivityManager.Stub } } - if (DEBUG_POWER) { - Slog.w(TAG, "noteWakupAlarm[ sourcePkg=" + sourcePkg + ", sourceUid=" + sourceUid - + ", workSource=" + workSource + ", tag=" + tag + "]"); - } + int standbyBucket = 0; mBatteryStatsService.noteWakupAlarm(sourcePkg, sourceUid, workSource, tag); if (workSource != null) { - StatsLog.write(StatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag, sourcePkg); + String workSourcePackage = workSource.getName(0); + int workSourceUid = workSource.getAttributionUid(); + if (workSourcePackage == null) { + workSourcePackage = sourcePkg; + workSourceUid = sourceUid; + } + + if (mUsageStatsService != null) { + standbyBucket = mUsageStatsService.getAppStandbyBucket(workSourcePackage, + UserHandle.getUserId(workSourceUid), SystemClock.elapsedRealtime()); + } + + StatsLog.write(StatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag, sourcePkg, + standbyBucket); + if (DEBUG_POWER) { + Slog.w(TAG, "noteWakeupAlarm[ sourcePkg=" + sourcePkg + ", sourceUid=" + sourceUid + + ", workSource=" + workSource + ", tag=" + tag + ", standbyBucket=" + + standbyBucket + " wsName=" + workSourcePackage + ")]"); + } } else { + if (mUsageStatsService != null) { + standbyBucket = mUsageStatsService.getAppStandbyBucket(sourcePkg, + UserHandle.getUserId(sourceUid), SystemClock.elapsedRealtime()); + } StatsLog.write_non_chained(StatsLog.WAKEUP_ALARM_OCCURRED, sourceUid, null, tag, - sourcePkg); + sourcePkg, standbyBucket); + if (DEBUG_POWER) { + Slog.w(TAG, "noteWakeupAlarm[ sourcePkg=" + sourcePkg + ", sourceUid=" + sourceUid + + ", workSource=" + workSource + ", tag=" + tag + ", standbyBucket=" + + standbyBucket + "]"); + } } + } @Override |