首页 > 试题广场 >

当应用large=true时,可申请的最大内存取决去下面哪个

[单选题]
当应用large=true时,可申请的最大内存取决去下面哪个值?
  • dalvilk.vm.heapsize
  • dalvilk.vm.heapgrowthlimt
  • dalvilk.vm.heapminfree
  • dalvilk.vm.heapmaxfree
推荐
选A。该题考察的是Android中的OOM(Out Of Memory内存溢出)问题解决,这个现象通常出现在用到很多图片或者很大图片的APP开发中
OOM产生原因:
  • Android系统为每个APP分配一个独立的工作空间, 或者说分配一个单独的Dalvik虚拟机,这样每个APP都可以独立运行而不相互影响。而Android对于每个 Dalvik虚拟机都会有一个最大内存限制,如果当前占用的内存加上申请的内存资源超过了这个限制 ,系统就会抛出OOM错误!
  1. 选项A:dalvik.vm.heapsize  在mainfest中设置android:largeheap="true"时,应用的最大内存,超过这个值会有OOM产生。
  2. 选项B:dalvik.vm.heapgrowthlimt 标准的应用的最大堆内存大小,即没有在mainfest中设置android:largeheap="true"时,应用的最大内存,超过这个值会有OOM产生。
  3. 选项C:dalvik.vm.heapminfree   dalvik GC时使用的参数。
  4. 选项D:dalvik.vm.heapmaxfree  dalvik GC时使用的参数。
编辑于 2019-07-05 14:52:01 回复(0)
heapminfree 单次Heap内存调整的最小值.
heapmaxfree 单次Heap内存调整的最大值.
heapgrowthlimit 单个应用可用最大内存主要对应的是这个值
heapsize  表示单个进程可用的最大内存
在设置了heapgrowthlimit的情况下,单个进程可用最大内存为heapgrowthlimit值。在android开发中,如果要使用大堆,需要在manifest中指定android:largeHeap为true,这样dvm heap最大可达heapsize
发表于 2019-07-04 16:55:20 回复(0)