AndroidOS之zygote与system-server进程

2022-08-29  本文已影响0人  Amber_9

前言

这是一篇关于AndroidOS的zygote进程的学习记录,zygote作为盘古开天辟地,许多重要的进程(以及应用进程)都是从这里“孵化”出来的,希望能够通过画图将其系统直观地呈现出来。
zygote是由init进程创建出来的,详见上一篇AndroidOS之init进程时序图

zygote-sequence-diagram.png

总结:

他的执行程序app_process main()由init进程启动,将该进程的名称设置为zygote。
它主要做了以下工作:

1.调用AndroidRuntime::start方法,使用JNI向Java中注册了许多重要的native方法。
2.通过JNI调用ZygoteInit.java的main函数。(通过JNI调用java)
3.为IPC创建本地socket服务器。(RunSelectLoop方法一直等待socket客户端连接,例如:AMS执行创建应用进程时, startProcessLocked->Process:startViaZygote)
4.fork-启动SystemServer进程。

下一篇启动应用程序

上一篇 下一篇

猜你喜欢

热点阅读