VM堆的大小不能超过16mb、24mb、32mb,具体取决于手机的型号。 但本机堆的最大大小是多少呢?当应用程序处于前台时,可以分配多少本机内存。
谢谢。
VM堆的大小不能超过16mb、24mb、32mb,具体取决于手机的型号。 但本机堆的最大大小是多少呢?当应用程序处于前台时,可以分配多少本机内存。
谢谢。
从技术上讲,NDK中没有限制。某人之前曾问过这个问题,并被引用了此android-ndk Groups线程。一个相关的引用:
"另外,鉴于这是NDK列表,实际上并没有对您施加限制,因为它仅适用于Java堆。在本地堆中,分配没有限制..."
Dianne Hackborn
她还说,不应滥用这个功能,否则应用程序可能会被终止。
adb shell dumpsys meminfo PACKAGENAME
会提供您的应用程序的本地和dalvik内存使用情况。
这个问题没有简单的答案;你可以使用设备剩余的内存,减去其他程序正在使用的内存。当 Android 认为内存不足时,它会开始杀死后台任务,因此这是一个软限制。大多数设备没有交换空间。您可以通过 android.app.ActivityManager.MemoryInfo 在 Dalvik 内部获取有关设备内存的一些统计信息(我假设存在 NDK 等效物)。