Loading services/core/java/com/android/server/am/ActivityManagerService.java +4 −4 Original line number Diff line number Diff line Loading @@ -4781,7 +4781,7 @@ public class ActivityManagerService extends IActivityManager.Stub checkTime(startTime, "attachApplicationLocked: immediately before bindApplication"); bindApplicationTimeMillis = SystemClock.uptimeMillis(); bindApplicationTimeNanos = SystemClock.elapsedRealtimeNanos(); bindApplicationTimeNanos = SystemClock.uptimeNanos(); mAtmInternal.preBindApplication(app.getWindowProcessController()); final ActiveInstrumentation instr2 = app.getActiveInstrumentation(); if (mPlatformCompat != null) { Loading Loading @@ -4851,7 +4851,8 @@ public class ActivityManagerService extends IActivityManager.Stub app.setBindApplicationTime(bindApplicationTimeMillis); mProcessList.getAppStartInfoTracker() .reportBindApplicationTimeNanos(app, bindApplicationTimeNanos); .addTimestampToStart(app, bindApplicationTimeNanos, ApplicationStartInfo.START_TIMESTAMP_BIND_APPLICATION); // Make app active after binding application or client may be running requests (e.g // starting activities) before it is ready. Loading Loading @@ -14317,7 +14318,7 @@ public class ActivityManagerService extends IActivityManager.Stub // activity manager to announce its creation. public boolean bindBackupAgent(String packageName, int backupMode, int targetUserId, @BackupDestination int backupDestination) { long startTimeNs = SystemClock.elapsedRealtimeNanos(); long startTimeNs = SystemClock.uptimeNanos(); if (DEBUG_BACKUP) { Slog.v(TAG, "bindBackupAgent: app=" + packageName + " mode=" + backupMode + " targetUserId=" + targetUserId + " callingUid = " + Binder.getCallingUid() Loading Loading @@ -19416,7 +19417,6 @@ public class ActivityManagerService extends IActivityManager.Stub // If the process is known as top app, set a hint so when the process is // started, the top priority can be applied immediately to avoid cpu being // preempted by other processes before attaching the process of top app. final long startTimeNs = SystemClock.elapsedRealtimeNanos(); HostingRecord hostingRecord = new HostingRecord(hostingType, hostingName, isTop); ProcessRecord rec = getProcessRecordLocked(processName, info.uid); services/core/java/com/android/server/am/AppStartInfoTracker.java +3 −38 Original line number Diff line number Diff line Loading @@ -426,14 +426,6 @@ public final class AppStartInfoTracker { } } void reportApplicationOnCreateTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_APPLICATION_ONCREATE); } /** * Helper functions for monitoring shell command. * > adb shell am start-info-detailed-monitoring [package-name] Loading Loading @@ -468,41 +460,14 @@ public final class AppStartInfoTracker { } } /** Report a bind application timestamp to add to {@link ApplicationStartInfo}. */ public void reportBindApplicationTimeNanos(ProcessRecord app, long timeNs) { addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_BIND_APPLICATION); } void reportFirstFrameTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_FIRST_FRAME); } void reportFullyDrawnTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN); void addTimestampToStart(ProcessRecord app, long timeNs, int key) { addTimestampToStart(app.info.packageName, app.uid, timeNs, key); } void reportFullyDrawnTimeNanos(String processName, int uid, long timeNs) { void addTimestampToStart(String packageName, int uid, long timeNs, int key) { if (!mEnabled) { return; } addTimestampToStart(processName, uid, timeNs, ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN); } private void addTimestampToStart(ProcessRecord app, long timeNs, int key) { addTimestampToStart(app.info.packageName, app.uid, timeNs, key); } void addTimestampToStart(String packageName, int uid, long timeNs, int key) { synchronized (mLock) { AppStartInfoContainer container = mData.get(packageName, uid); if (container == null) { Loading services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -1021,6 +1021,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { final boolean allowWhileBooting = (r.intent.getFlags() & Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0; long startTimeNs = SystemClock.uptimeNanos(); if (DEBUG_BROADCAST) logv("Scheduling " + r + " to cold " + queue); queue.app = mService.startProcessLocked(queue.processName, info, true, intentFlags, hostingRecord, zygotePolicyFlags, allowWhileBooting, false); Loading @@ -1032,8 +1033,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { } // TODO: b/335420031 - cache receiver intent to avoid multiple calls to getReceiverIntent. mService.mProcessList.getAppStartInfoTracker().handleProcessBroadcastStart( SystemClock.elapsedRealtimeNanos(), queue.app, r.getReceiverIntent(receiver), r.alarm /* isAlarm */); startTimeNs, queue.app, r.getReceiverIntent(receiver), r.alarm /* isAlarm */); return false; } Loading services/core/java/com/android/server/am/ContentProviderHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ public class ContentProviderHelper { final int expectedUserId = userId; synchronized (mService) { long startTime = SystemClock.uptimeMillis(); long startElapsedTimeNs = SystemClock.elapsedRealtimeNanos(); long startTimeNs = SystemClock.uptimeNanos(); ProcessRecord r = null; if (caller != null) { Loading Loading @@ -587,7 +587,7 @@ public class ContentProviderHelper { firstLaunch, 0L /* TODO: stoppedDuration */); mService.mProcessList.getAppStartInfoTracker() .handleProcessContentProviderStart(startElapsedTimeNs, proc); .handleProcessContentProviderStart(startTimeNs, proc); } cpr.launchingApp = proc; mLaunchingProviders.add(cpr); Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +4 −4 Original line number Diff line number Diff line Loading @@ -4781,7 +4781,7 @@ public class ActivityManagerService extends IActivityManager.Stub checkTime(startTime, "attachApplicationLocked: immediately before bindApplication"); bindApplicationTimeMillis = SystemClock.uptimeMillis(); bindApplicationTimeNanos = SystemClock.elapsedRealtimeNanos(); bindApplicationTimeNanos = SystemClock.uptimeNanos(); mAtmInternal.preBindApplication(app.getWindowProcessController()); final ActiveInstrumentation instr2 = app.getActiveInstrumentation(); if (mPlatformCompat != null) { Loading Loading @@ -4851,7 +4851,8 @@ public class ActivityManagerService extends IActivityManager.Stub app.setBindApplicationTime(bindApplicationTimeMillis); mProcessList.getAppStartInfoTracker() .reportBindApplicationTimeNanos(app, bindApplicationTimeNanos); .addTimestampToStart(app, bindApplicationTimeNanos, ApplicationStartInfo.START_TIMESTAMP_BIND_APPLICATION); // Make app active after binding application or client may be running requests (e.g // starting activities) before it is ready. Loading Loading @@ -14317,7 +14318,7 @@ public class ActivityManagerService extends IActivityManager.Stub // activity manager to announce its creation. public boolean bindBackupAgent(String packageName, int backupMode, int targetUserId, @BackupDestination int backupDestination) { long startTimeNs = SystemClock.elapsedRealtimeNanos(); long startTimeNs = SystemClock.uptimeNanos(); if (DEBUG_BACKUP) { Slog.v(TAG, "bindBackupAgent: app=" + packageName + " mode=" + backupMode + " targetUserId=" + targetUserId + " callingUid = " + Binder.getCallingUid() Loading Loading @@ -19416,7 +19417,6 @@ public class ActivityManagerService extends IActivityManager.Stub // If the process is known as top app, set a hint so when the process is // started, the top priority can be applied immediately to avoid cpu being // preempted by other processes before attaching the process of top app. final long startTimeNs = SystemClock.elapsedRealtimeNanos(); HostingRecord hostingRecord = new HostingRecord(hostingType, hostingName, isTop); ProcessRecord rec = getProcessRecordLocked(processName, info.uid);
services/core/java/com/android/server/am/AppStartInfoTracker.java +3 −38 Original line number Diff line number Diff line Loading @@ -426,14 +426,6 @@ public final class AppStartInfoTracker { } } void reportApplicationOnCreateTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_APPLICATION_ONCREATE); } /** * Helper functions for monitoring shell command. * > adb shell am start-info-detailed-monitoring [package-name] Loading Loading @@ -468,41 +460,14 @@ public final class AppStartInfoTracker { } } /** Report a bind application timestamp to add to {@link ApplicationStartInfo}. */ public void reportBindApplicationTimeNanos(ProcessRecord app, long timeNs) { addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_BIND_APPLICATION); } void reportFirstFrameTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_FIRST_FRAME); } void reportFullyDrawnTimeNanos(ProcessRecord app, long timeNs) { if (!mEnabled) { return; } addTimestampToStart(app, timeNs, ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN); void addTimestampToStart(ProcessRecord app, long timeNs, int key) { addTimestampToStart(app.info.packageName, app.uid, timeNs, key); } void reportFullyDrawnTimeNanos(String processName, int uid, long timeNs) { void addTimestampToStart(String packageName, int uid, long timeNs, int key) { if (!mEnabled) { return; } addTimestampToStart(processName, uid, timeNs, ApplicationStartInfo.START_TIMESTAMP_FULLY_DRAWN); } private void addTimestampToStart(ProcessRecord app, long timeNs, int key) { addTimestampToStart(app.info.packageName, app.uid, timeNs, key); } void addTimestampToStart(String packageName, int uid, long timeNs, int key) { synchronized (mLock) { AppStartInfoContainer container = mData.get(packageName, uid); if (container == null) { Loading
services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -1021,6 +1021,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { final boolean allowWhileBooting = (r.intent.getFlags() & Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0; long startTimeNs = SystemClock.uptimeNanos(); if (DEBUG_BROADCAST) logv("Scheduling " + r + " to cold " + queue); queue.app = mService.startProcessLocked(queue.processName, info, true, intentFlags, hostingRecord, zygotePolicyFlags, allowWhileBooting, false); Loading @@ -1032,8 +1033,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { } // TODO: b/335420031 - cache receiver intent to avoid multiple calls to getReceiverIntent. mService.mProcessList.getAppStartInfoTracker().handleProcessBroadcastStart( SystemClock.elapsedRealtimeNanos(), queue.app, r.getReceiverIntent(receiver), r.alarm /* isAlarm */); startTimeNs, queue.app, r.getReceiverIntent(receiver), r.alarm /* isAlarm */); return false; } Loading
services/core/java/com/android/server/am/ContentProviderHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ public class ContentProviderHelper { final int expectedUserId = userId; synchronized (mService) { long startTime = SystemClock.uptimeMillis(); long startElapsedTimeNs = SystemClock.elapsedRealtimeNanos(); long startTimeNs = SystemClock.uptimeNanos(); ProcessRecord r = null; if (caller != null) { Loading Loading @@ -587,7 +587,7 @@ public class ContentProviderHelper { firstLaunch, 0L /* TODO: stoppedDuration */); mService.mProcessList.getAppStartInfoTracker() .handleProcessContentProviderStart(startElapsedTimeNs, proc); .handleProcessContentProviderStart(startTimeNs, proc); } cpr.launchingApp = proc; mLaunchingProviders.add(cpr); Loading