使用内存映射在Android中跨进程共享内存

时间:2019-03-28 11:46:21

标签: android android-memory

在查看android文档的“内存管理”时,我遇到了Sharing memory across processes的特定部分。

我在这里无法理解第二点:

  

大多数静态数据被映射到一个进程中。此技术允许在进程之间共享数据,并允许在需要时将其分页出来。静态数据示例包括:Dalvik代码(通过将其放置在预链接的.odex文件中以进行直接制图),应用程序资源(通过将资源表设计为可以进行制图的结构并对齐APK的zip条目)以及.so文件中的本机代码之类的传统项目元素

我了解mmapping是什么。在这一点上提到的是该应用程序的dalvik代码,应用程序资源:为什么会与其他应用程序共享这些资源?

有人可以举例说明该陈述是否合理吗?

1 个答案:

答案 0 :(得分:1)

Dalvik代码是您的应用程序的代码。此代码是静态的,永远不会更改。同样,资源可以在进程之间共享,因为它们也是静态的,并且永远不会改变。一个应用程序可能具有在不同OS进程中运行的不同组件。在这种情况下,共享所有应用程序代码和资源可以节省实际内存。