Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 564686e7 authored by Zim's avatar Zim Committed by Zimuzo Ezeozue
Browse files

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
parent ecf3710b
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -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);
        }