写在前面
- zygote 是在一个 Android Linux 上的一个进程
- zygote 进程在启动的过程中,fork 出了 system_server 进程
- zygote 进程稳定后,就在自己的主循环里等待客户端连接自己执行命令
- system_server 进程里面跑着很多 Android 系统的 Service,包括 ActivityManagerService
- 用户 app 进程,都是从 zygote 进程 fork 出来的
- 用户 app 启动的时候,首先会由 system_server 进程里面的 ActivityManagerService 向 zygote 进程发一个创建进程的命令
- 然后 zygote 才 fork 出一个进程作为 app 进程
大纲
- zygote 进程是怎么来的:即它的启动过程
- system_server 进程是干嘛用的
- app 的启动过程
1. zygote 进程的启动过程
2. system_server 进程是干嘛用的
- 绕了一大圈,最终,system_server 这个进程: