diff options
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 30 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 12 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/AppErrors.java | 10 |
3 files changed, 50 insertions, 2 deletions
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 7fe8e6208e1e..5bb2015c7d3e 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -1225,6 +1225,22 @@ message AppCrashOccurred { // The pid if available. -1 means not available. optional sint32 pid = 4; + + optional string package_name = 5; + + enum InstantApp { + UNAVAILABLE = 0; + FALSE = 1; + TRUE = 2; + } + optional InstantApp is_instant_app = 6; + + enum ForegroundState { + UNKNOWN = 0; + BACKGROUND = 1; + FOREGROUND = 2; + } + optional ForegroundState foreground_state = 7; } /** @@ -1266,6 +1282,20 @@ message ANROccurred { optional string short_component_name = 3; optional string reason = 4; + + enum InstantApp { + UNAVAILABLE = 0; + FALSE = 1; + TRUE = 2; + } + optional InstantApp is_instant_app = 5; + + enum ForegroundState { + UNKNOWN = 0; + BACKGROUND = 1; + FOREGROUND = 2; + } + optional ForegroundState foreground_state = 6; } /* diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 300671c4ff1c..3ca89b4feb19 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -15098,7 +15098,17 @@ public class ActivityManagerService extends IActivityManager.Stub Binder.getCallingUid(), eventType, processName, - Binder.getCallingPid()); + Binder.getCallingPid(), + (r != null && r.info != null) ? r.info.packageName : "", + (r != null && r.info != null) ? (r.info.isInstantApp() + ? StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__TRUE + : StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__FALSE) + : StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__UNAVAILABLE, + r != null ? (r.isInterestingToUserLocked() + ? StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND + : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND) + : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN + ); addErrorToDropBox(eventType, r, processName, null, null, null, null, null, crashInfo); diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index 7ee20fa2501c..d5bb7ed6fb36 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -1041,7 +1041,15 @@ class AppErrors { } StatsLog.write(StatsLog.ANR_OCCURRED, app.uid, app.processName, - activity == null ? "unknown": activity.shortComponentName, annotation); + activity == null ? "unknown": activity.shortComponentName, annotation, + (app.info != null) ? (app.info.isInstantApp() + ? StatsLog.ANROCCURRED__IS_INSTANT_APP__TRUE + : StatsLog.ANROCCURRED__IS_INSTANT_APP__FALSE) + : StatsLog.ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE, + app != null ? (app.isInterestingToUserLocked() + ? StatsLog.ANROCCURRED__FOREGROUND_STATE__FOREGROUND + : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND) + : StatsLog.ANROCCURRED__FOREGROUND_STATE__UNKNOWN); mService.addErrorToDropBox("anr", app, app.processName, activity, parent, annotation, cpuInfo, tracesFile, null); |