android 应用程序内存上限,Android APP的最大可用内存
JAVA虚拟机对单个进程的最大内存进行了限制,如果超出这个值就会抛出OOM。这个属性值定义在/system/build.prop文件中,不同设备的这个值会不一样,各个厂商的ROM都会根据设备配置对这个值进行修改,第一部Android手机(G1)为16M。应用最大内存值默认是 dalvik.vm.heapgrowthlimit (仅针对dalvik堆,不包括native堆)如果想要被允许获得更大的内
JAVA虚拟机对单个进程的最大内存进行了限制,如果超出这个值就会抛出OOM。这个属性值定义在/system/build.prop文件中,不同设备的这个值会不一样,各个厂商的ROM都会根据设备配置对这个值进行修改,第一部Android手机(G1)为16M。
应用最大内存值默认是 dalvik.vm.heapgrowthlimit (仅针对dalvik堆,不包括native堆)
如果想要被允许获得更大的内存可以使用 android:largeHeap="true" ,使用largeHeap后其限制值会变为 dalvik.vm.heapsize 。
adb shell getprop dalvik.vm.heapsize
512m
------------------- build.prop 部分内容 -----------------
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=384m
dalvik.vm.heapsize=512m
ro.com.google.gmsversion=10_202005
net.bt.name=Android
复制代码
也可使用下方代码查看应用最大内存:
ActivityManager am = (ActivityManager) getApplication().getSystemService(Context.ACTIVITY_SERVICE);
int limitMemorySize = am.getMemoryClass();
int largeMemorySize = am.getLargeMemoryClass();
long maxMemory = Runtime.getRuntime().maxMemory();//根据是否largeHeap,等于limitMemory或largeMemory
复制代码
虽然64位的寻址空间比32位大了很多,但在android上将应用从32位改为64位并不会带来更大的内存阈值,始终还是 heapgrowthlimit 和 heapsize。
更多推荐
所有评论(0)