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()等方法。

posted @ 2020-10-31 13:15  灰熊Grizzly  阅读(172)  评论(0)    收藏  举报