summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zim <zezeozue@google.com> 2023-06-07 17:17:06 +0100
committer Zimuzo Ezeozue <zezeozue@google.com> 2023-07-19 14:02:14 +0000
commit564686e7d83d6aaf6238dec092423eab8fbeb9fc (patch)
treebb654a734ce0e40078000450ec9e490854e95a78
parentecf3710bd67fcc164421b2116e0d40302902afb7 (diff)
Instrument Service lifecycle events
Added trace events with a 'Binder token' for Service lifecycle events dispatched from the system_server. We already have equivalent events with same 'Binder token' on the client side. This will enable us correlate the dispatch of the Service event with the handling in the app. Consequently allowing us to bulk anlayze Service lifecycle event latencies with attribution to a calling process. Test: Manual Bug: 285553040 Change-Id: Iafec54bcaa79af138290e092fb58aa9684584cac
-rw-r--r--core/java/android/app/ActivityThread.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 853528f908bb..4a6fc9aa4a41 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -1110,6 +1110,10 @@ public final class ActivityThread extends ClientTransactionHandler
s.token = token;
s.info = info;
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleCreateService. token="
+ + token);
+ }
sendMessage(H.CREATE_SERVICE, s);
}
@@ -1125,6 +1129,11 @@ public final class ActivityThread extends ClientTransactionHandler
if (DEBUG_SERVICE)
Slog.v(TAG, "scheduleBindService token=" + token + " intent=" + intent + " uid="
+ Binder.getCallingUid() + " pid=" + Binder.getCallingPid());
+
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleBindService. token="
+ + token + " bindSeq=" + bindSeq);
+ }
sendMessage(H.BIND_SERVICE, s);
}
@@ -1134,6 +1143,10 @@ public final class ActivityThread extends ClientTransactionHandler
s.intent = intent;
s.bindSeq = -1;
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleUnbindService. token="
+ + token);
+ }
sendMessage(H.UNBIND_SERVICE, s);
}
@@ -1149,16 +1162,28 @@ public final class ActivityThread extends ClientTransactionHandler
s.flags = ssa.flags;
s.args = ssa.args;
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleServiceArgs. token="
+ + token + " startId=" + s.startId);
+ }
sendMessage(H.SERVICE_ARGS, s);
}
}
public final void scheduleStopService(IBinder token) {
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleStopService. token="
+ + token);
+ }
sendMessage(H.STOP_SERVICE, token);
}
@Override
public final void scheduleTimeoutService(IBinder token, int startId) {
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
+ Trace.instant(Trace.TRACE_TAG_ACTIVITY_MANAGER, "scheduleTimeoutService. token="
+ + token);
+ }
sendMessage(H.TIMEOUT_SERVICE, token, startId);
}