Activity从Launcher点击图标开始

fork进程

4、这块采用ALDL通信的方式通过 IActivityManager.Stub.asInterface(binder) 得到ams因为ActivityManagerService extend IActivityManager.Stub

20、第一次启动还没创建进程,如果已经有该进程执行realStartActivityLocked

29、通过openZygoteSocketIfNeeded 与zygote建连接


activity启动过程

14 通过发送BIND_APPLICATION消息

15 初始化instrumentation,application

25、在realStartActivityLocked中初始化ClientTransaction.addCallback(LaunchActionItem.obain)

lifecycleItem = ResumeActivityItem.obtain(mService.isNextTransitionForward());

clientTransaction.setLifecycleStateRequest(lifecycleItem)

26、中间通过clientTransactionHandle中转了一下,clientTransactionHandle是一个抽象类Activitythread实现了这个抽象类

27、创建ContextImpl实例、通过instrumentation 得到activity对象

34、在executeLifecycleState 分别调用了 cycleToPath 执行了 handleStartActivity,和ResumeActivityItem的execute,最后执行handleResumeActivity-->performResumeActivity-->Activity.performResume-->Instrumentation.callActivityOnResume-->activity.onresume

你可能感兴趣的:(Activity从Launcher点击图标开始)