diff options
| author | 2023-06-07 17:17:06 +0100 | |
|---|---|---|
| committer | 2023-07-19 14:02:14 +0000 | |
| commit | 564686e7d83d6aaf6238dec092423eab8fbeb9fc (patch) | |
| tree | bb654a734ce0e40078000450ec9e490854e95a78 | |
| parent | ecf3710bd67fcc164421b2116e0d40302902afb7 (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.java | 25 |
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); } |