【发布时间】:2011-06-11 04:20:24
【问题描述】:
我正在寻找任何类型的网站、博文、维基、讨论、书籍、杂志、科学论文,它们在权威上可以解释 Android 内存管理的内部结构。我很清楚,很大一部分是Linux,这是我应该首先去的地方,但是Android有dalvik,据我了解,它与内核深度集成,而且,如果用完Android正在卸载应用程序内存,这可能是Linux不做的。因此,我正在寻找有关 Android 内存管理的权威答案。主题包括但不限于:
- 如何解读adb shell dumpsys meminfo中的值,即每个值的含义是什么:size、alloc、free、Pss、privdirty、shareddirty、存储什么样的数据那里?
- 评估设备内存消耗的最佳指标是什么?
- 每个 *.so 加载到哪里?还是 Android 实现了就地执行?
- 对应用程序可以消耗多少内存有任何限制吗?
- 操作系统是否分配了一块连续的内存,只要它是连续的就可以增长,或者允许某种碎片?
- 等
这个帖子How do I discover memory usage of my application in Android?有一个很好的答案,但我想要一些更深入的解释,因此要求外部资源。
【问题讨论】:
-
“如何解释来自 adb shell dumpsys meminfo 的值”——通过
ActivityManager.getProcessMemoryInfo()提供了相同的信息,并记录在您链接到的 StackOverflow 答案中。这个答案来自 Android 核心团队成员 Dianne Hackborn。