Zygote简要分析

关于framework中的某些源码的分析,只记录下结论,以及主要的一些地方,具体的代码逻辑就不一一分析了,平时也不一定能用得上,需要用到的时候在根据记录的一些标记去寻找。这样方便记录与查看,没那么费脑。

  • zygote

zygote(受精卵)进程类似于Android的母进程,起始进程,Android系统的一些系统进程和应用程序进程都是通过Zygote进程fork出来的。

  • 流程:

Linux系统的init进程会启动Zygote进程(调用ZygoteInit.main方法),然后Zygote进程会把SystemServer进程fork出来,其它的应用程序的进程也会在启动的时候由Zygote进程fork出来。

  • ZygoteInit主要工作:

1)注册Zygote进程的服务端socket;

2)加载class,resource,opengl,webview的各种资源;

3)fork出systemserver进程,启动进程;

4)调用runSelectLoop()方法,一直监听socket消息,阻塞,等待命令;

5)收到创建应用程序的客户端socket消息之后,通过Zygote.forkAndSpecialize创建进程。

 

你可能感兴趣的:(framework,zygote)