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 .启动各种系统服务
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。