在浏览内存管理的android文档时,我遇到了Sharing memory across processes的这个特殊部分。
我无法理解第二点:
大多数静态数据都被映射到一个进程中。该技术允许在进程之间共享数据,并且还允许在需要时将其分页。示例静态数据包括:Dalvik代码(通过将其置于预先链接的.odex文件中进行直接mmapping),app资源(通过将资源表设计为可以mmap的结构并通过对齐APK的zip条目)和传统的项目元素,如.so文件中的本机代码
我明白mmapping
是什么。在这一点上提到的事情是该应用程序的dalvik代码,应用程序资源:为什么这些应用程序将与其他应用程序共享?
有人可以举个例子,这个陈述有意义吗?
Dalvik代码是您的应用程序的代码。此代码是静态的,永远不会更改。此外,资源可以在进程之间共享,因为它们也是静态的,永远不会更改。一个应用程序可以在不同的OS进程中运行不同的组件。在这种情况下,共享所有应用程序代码和资源可以节省实际内存。