Android memory documentation在Android Studio探查器上描述了Zygote堆选项(在查看分配时):
在Android系统中分叉应用程序进程的写时复制堆
我理解如何从Zygote分叉进程,并且这里存储和共享框架类,但我不清楚这实际意味着什么 - 被复制的是什么?
这是否意味着当在这个区域中更改或加载类时,它会像在Java中实现集合一样进行copy-on-write,或者这与分叉过程有关?
答案 0 :(得分:2)
所有"以Zygote为基础的"进程的内存页面相同。
不会复制这些页面,而是将所有页面链接到同一个内存页面。这减少了所有基于Zygote的"过程
如果其中一个进程将新数据写入此类页面,则会在写入实际发生之前自动复制页面(因为否则将更改所有分支的内存)。
此机制称为写时复制。