- Gityuan – startActivity启动过程分析
- 点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;
system_server
进程接收到请求后,向zygote
进程发送创建进程的请求;Zygote
进程fork
出新的子进程,即App进程
;- App进程,通过
Binder
IPC向sytem_server
进程发起attachApplication
请求; system_server
进程在收到请求后,进行一系列准备工作后,再通过binder
IPC向App进程发送scheduleLaunchActivity
请求;- App进程的
binder
线程(ApplicationThread)在收到请求后,通过handle
r向主线程发送LAUNCH_ACTIVITY
消息; - 主线程在收到
Message
后,通过发射机制创建目标Activity
,并回调Activity.onCreate()
等方法。