所有文章
标签分类系列关于This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
Android应用启动过程
流程图
- 点击桌面App图标,Launcher通过
Binder
对AMS
发起startActivity请求; - AMS接收到请求后,通过
Socket
向zygote
进程发送创建进程的请求; - Zygote进程fork自己搞出App进程;
- App进程,通过
Binder
向AMS
发起attachApplication
请求; - AMS收到请求后,进行一系列准备工作后,通过binder向App进程发送scheduleLaunchActivity请求;
- App进程的
ApplicationThread
收到请求后,通过handler
向ActivityThread
发送LAUNCH_ACTIVITY消息; - ActivityThread收到消息后,通过反射机制创建目标Activity,并回调Activity的
onCreate()
等生命周期方法。 - 当
onResume
执行完毕后UI开始渲染,渲染完毕后,App正式启动完毕。