- init 进程启动做的主要工作:
- 创建和挂载启动所需的文件目录
- 初始化和启动属性服务
- 解析init.rc配置文件并启动Zygote
- Zygote
- 创建AppRuntime 并调用其start 方法,启动Zygote进程
- 创建Java虚拟机,并为Java 虚拟机注册JNI方法
3 .通过JNI调用ZygoteInit的main函数进入Zygote的Java 框架层- 通过registZygoteSocket 方法创建服务器端Socket,并通过runSelectloop方法等待AMS的请求来创建新的应用程序进程
- 启动SystemServer 进程
- SystemServer
- 启动Binder 线程池,
2 .创建SystemServerManager,其用于对系统的服务进行创建,启动和生命周期的管理
3 .启动各种系统服务