Android开发Android开发经验谈Android技术知识

zygote的启动和作用

2019-12-26  本文已影响0人  space0o0

zygote的作用

1、启动SystemServer
2、孵化引用进程

zygote启动流程和工作原理

启动进程

1、linux启动后的第一个进程:Init进程;
2、Init进程读取Init.rc文件开启zygote进程;

准备工作

3、调用startVm函数创建虚拟机,调用startReg函数为虚拟机注册JNI方法;
4、在虚拟机的环境中找到zygoteInit的类,找到类中的Main函数,使用CallStaticVoidMethod函数开启Main函数,从这里就进入了java世界,上面的都是native世界;
5、zygote进程开始预加载系统资源,这样通过它fork的子进程就相当于不用再创建一遍资源,达到了加速启动应用进程的作用。
6、启动SystemServer进程,用来启动系统服务

Loop

7、最后开启Loop,通过socket来进行通讯

8967140E-682C-4263-9888-A8A72197DDEB.png 16c701be782bc915.png

参考资料:
谈谈对Android中Zygote的理解 - 掘金

上一篇下一篇

猜你喜欢

热点阅读