Android启动都做了什么(API 25)
Android启动都做了什么(API 25)

1.点击启动一个app,Launcher进程采用Binder IPC向ActivityManagerService发起startActivity请求;
2.ActivityManagerService接收到请求后,向zygote进程发送创建进程的请求;
3.Zygote进程fork出新的子进程,即app进程;
4.app进程通过Binder IPC向systerm_server进程发起绑定Application请求;
5.system_server进程从堆栈顶端取出想要启动的activity,在realStartActivityLocked函数中通过ApplicationThreadProxy调回app进程;
6.system_server向app进程发送scheduleLaunchActivity请求;
7.app进程的binder线程ApplicationThread在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息;
8.主线程ActivityThread收到消息后,通过发射机制创建目标Activity,并回调Activity.OnCreate()等方法。

浙公网安备 33010602011771号