我正在寻找任何与网站、博客、维基、讨论、书籍、杂志、科学论文有关的内容,以权威的方式解释Android内存管理的内部机制。我知道很大一部分是Linux,这也是我应该首先去了解的,但Android有dalvik,据我所知,它与Kernel深度集成,此外,如果Android耗尽内存,它会卸载应用程序,这可能是Linux不会做的。因此,我正在寻找有关Android内存管理的权威答案。主题包括但不限于:
- 如何解释来自adb shell dumpsys meminfo的值,即每个值的含义:大小、分配、空闲、Pss、私有脏数据、共享脏数据,存储的是什么类型的数据?
- 评估设备内存消耗的最佳指标是什么?
- 每个*.so加载到哪里?或者Android是否实现了就地执行?
- 应用程序可以消耗多少内存?
- 操作系统是否分配一个连续的内存块,可以随着连续而增长,还是允许某种形式的碎片化?
- 等等。
这个帖子如何在Android中发现应用程序的内存使用情况?有一个很好的答案,但我想要更深入的解释,因此正在寻求外部资源。
ActivityManager.getProcessMemoryInfo()
提供,并在您链接到的StackOverflow答案中有记录。该答案来自Android核心团队成员Dianne Hackborn。 - CommonsWare