Zygote的理解

####

Zygote的作用
  1. 启动SystemServer

  2. 孵化应用进程

zygot启动过程
  1. init进程根据init.rc配置fork出zygote进程
app_main.cpp的main函数中的AppRuntime的start 方法来启动Zygote进程的
  1. 启动Android虚拟机,注册jni函数

  2. 预加载系统资源

  3. 启动Systemserver

  4. 注册socket,开启无限循环,通过监听socket,等待AMS命令fork进程

Zygote的IPC为什么不采用binder

zygote fork 需要单线程,需要停掉其他线程,启动之后再恢复,如果是binder,子进程其他线程状态无法恢复