Add fileds to AppCrash and ANR atoms
Bug: 77487218
Change-Id: I13fe87c9811e248ed0ee87c64d482c9463d6b9a1
Fix: 77487218
Test: cts test
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 7fe8e62..5bb2015 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -1225,6 +1225,22 @@
// 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 @@
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 fd8998b..7eb4f36 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -15209,7 +15209,17 @@
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 7ee20fa..d5bb7ed 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 @@
}
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);