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正式启动完毕。