Android 系统启动

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

你可能感兴趣的:(Android 系统启动)