01-10 16:15:02.883 I/ActivityManager( 3402): START u0 {dat=content://mms-sms/conversations/13 cmp=com.android.mms/.ui.ComposeMessageActivity} from uid 10025 on display 0
01-10 16:15:03.305 I/ActivityManager( 3402): Displayed com.android.mms/.ui.ComposeMessageActivity: +395ms 01-10 16:15:03.385 D/OpenGLRenderer( 8158): endAllActiveAnimators on 0x9ba5ca00 (ListView) with handle 0x9b2dcf40 01-10 16:15:03.676 D/ActivityTrigger( 3402): ActivityTrigger activityStopTrigger
01-10 16:15:03.983 I/WindowManager( 3402): Destroying surface Surface(name=com.android.mms/com.android.mms.ui.ConversationList) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.WindowManagerService.tryStartExitingAnimation:3022 com.android.server.wm.WindowManagerService.relayoutWindow:2902 com.android.server.wm.Session.relayout:215 android.view.IWindowSession$Stub.onTransact:286 com.android.server.wm.Session.onTransact:136
01-10 16:15:04.056 D/ActivityTrigger( 3402): ActivityTrigger activityPauseTrigger
android/frameworks/base/services/core/java/com/android/server/wm/WindowSurfaceController.java:157: Slog.i(TAG, "Destroying surface " + this + " called by " + Debug.getCallers(8));
Destroying surface Surface(name=com.android.mms/com.android.mms.ui.ConversationList)
called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.WindowManagerService.tryStartExitingAnimation:3022 com.android.server.wm.WindowManagerService.relayoutWindow:2902 com.android.server.wm.Session.relayout:215 android.view.IWindowSession$Stub.onTransact:286
com.android.server.wm.Session.onTransact:136
ActivityStack.java
void clearLaunchTime(ActivityRecord r) { // Make sure that there is no activity waiting for this to launch. if (mStackSupervisor.mWaitingActivityLaunched.isEmpty()) { r.displayStartTime = r.fullyDrawnStartTime = 0; } else { mStackSupervisor.removeTimeoutsForActivityLocked(r); mStackSupervisor.scheduleIdleTimeoutLocked(r); } }
private void completeResumeLocked(ActivityRecord next) {
// schedule an idle timeout in case the app doesn't do it for us. mStackSupervisor.scheduleIdleTimeoutLocked(next);
}
frameworks/base/services/core/java/com/android/server/am/
ActivityStackSupervisor.java
case IDLE_TIMEOUT_MSG: {}
case IDLE_NOW_MSG: {}
activityIdleInternal()
final ActivityRecord activityIdleInternalLocked(final IBinder token, boolean fromTimeout, Configuration config) {
stack.stopActivityLocked(r);
}
ActivityStack.java
final void stopActivityLocked(ActivityRecord r) {
mActivityTrigger.activityStopTrigger(r.intent, r.info, r.appInfo);
EventLogTags.writeAmStopActivity( r.userId, System.identityHashCode(r), r.shortComponentName); r.app.thread.scheduleStopActivity(r.appToken, r.visible, r.configChangeFlags);
}
out/target/common/obj/JAVA_LIBRARIES/services.core_intermediates/src/java/com/android/server/am/EventLogTags.java
ActivityTrigger.java
public void activityStopTrigger(Intent intent, ActivityInfo acInfo, ApplicationInfo appInfo) { ComponentName cn = intent.getComponent(); String activity = null; Log.d(TAG, "ActivityTrigger activityStopTrigger "); if (null != cn && null != appInfo) activity = cn.flattenToString() + "/" + appInfo.versionCode; native_at_stopActivity(activity); }
com_android_internal_app_ActivityTrigger.cpp
static void com_android_internal_app_ActivityTrigger_native_at_stopActivity(JNIEnv *env, jobject clazz, jstring activity) { for(size_t i = 0; i < gTotalNumLibs; i++){ if(mDlLibHandlers[i].stopActivity && activity) { const char *actStr = env->GetStringUTFChars(activity, NULL); if (NULL != actStr) { (*mDlLibHandlers[i].stopActivity)(actStr); env->ReleaseStringUTFChars(activity, actStr); } } } }
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0105/3830.html
ActivityRecord.java
reportLaunchTimeLocked()
