android应用进程启动

####

Android应用进程启动
  1. 在启动组件Activity或者service,如果所在进程没有启动,就会启动进程

  2. AMS像Zygote通过socket发送命令启动进程

  3. Zygote收到命令会调用runeOnce方法,fork进程

  4. zygote fork用进程后,会执行ActivityThread的Main函,这个ActivityThread类入口来自AMS发送的Socket参数

  5. 进程启动后会像AMS报告,启动才算结束

zygote会返回pid到AMS,注册IApplicationThread到AMS即app.thread。判断app是否启动,是通过判断app!=null &&app.thread!=null