可以分配给Android应用程序的最大本机内存

时间:2012-01-31 21:56:56

标签: android memory memory-leaks memory-management

根据手机的不同,VM堆的大小不能超过16mb,24mb,32mb。 但是本机堆的最大大小是多少?当应用程序处于前台时,可以为应用程序分配多少本机内存。

感谢。

3 个答案:

答案 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内存使用情况。