应用程序进程启动介绍

AMS发送启动应用程序进程请求

AMS请求Zygote

Zygote接受请求并创建应用程序进程

image
  • AMS与Zygote之间是通过socket通讯的。
  • 因为Zygote通过registerZygoteSocket方法创建服务器端socket, 然后通过无限循环监听AMS的请求,收到之后创建新的应用进程

binder线程池启动

消息循环创建

ActivityThread

  • 创建主线程Looper. Looper.prepareMainLooper()
  • 创建主线程H类(继承Handler)
  • Looper循环。 Looper.loop();

参考:Android进阶解密

推荐阅读更多精彩内容