根据手机的不同,VM堆的大小不能超过16mb,24mb,32mb。 但是本机堆的最大大小是多少?当应用程序处于前台时,可以为应用程序分配多少本机内存。
感谢。
答案 0 :(得分:10)
从技术上讲,NDK没有限制。 Someone暂时问了这个问题并被提到this android-ndk Groups thread。相关引言:
“另外假设这是NDK列表,实际上是限制 不强加给你,因为它只在Java堆上。没有限制 本机堆中的分配......“
Dianne Hackborn
她确实说它不应该被滥用,如果是应用程序可能会被杀死。
答案 1 :(得分:2)
对此没有简单的答案;你可以使用与设备一样多的内存,减去它用于其他程序的内存。当Android认为内存不足时,它会开始杀死后台任务,所以这是一个软限制。大多数设备没有交换空间。您可以使用android.app.ActivityManager.MemoryInfo从Dalvik内部获取有关设备内存的一些统计信息(我假设有一个等效的NDK)。
答案 2 :(得分:1)
adb shell dumpsys meminfo PACKAGENAME
会为您提供应用内存和dalvik内存使用情况。