通过之前的源码 分析 我们 看到了zygote 的源码 以及它里面的一些东西。 然后我这里画了一个图来 总结一下

zygote 是负责fork 出一些其他进程的。我们的app 启动 的主进程 都是通过zygote 来进行的,那么为什么要通过zygote 来进行fork 为什么不新建了进程呢。。 其实是因为 zygote 在创建的时候预加载了一些 资源 如 系统库 opengl android 等等 还有 系统类 一些资源,会做一些预加载工作。linux 中有一个 写时复制 技术(copy on write ) 就是 子进程 会 拥有与父进程 相同的资源 。所以 我们通过fork 出来的进程 就会共享这些预加载的资源 。
关于copy on write 技术可以看看这篇文章
本文深入解析了Android系统中Zygote的作用及其如何利用预加载资源和写时复制技术(Copy-on-Write)来高效地启动应用程序进程。
755

被折叠的 条评论
为什么被折叠?



