转自 http://www.cnblogs.com/jacktu/archive/2010/12/30/1921475.html

VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION); VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); 以上两种方法,对内存溢出问题并没有实质帮助。

堆(HEAP)是VM中占用内存最多的部分,通常是动态分配的。堆的大小不是一成不变的,通常有一个分配机制来控制它的大小。比如【下列都是假设数据】初始的HEAP是4M大,当4M的空间被占用超过75%的时候,重新分配堆为8M大;当8M被占用超过75%,分配堆为16M大。倒过来,当16M的堆利用不足30%的时候,缩减它的大小为8M大。重新设置堆的大小,尤其是压缩,一般会涉及到内存的拷贝,所以变更堆的大小对效率有不良影响。

Max Heap Size,是堆内存的上限值,Android的缺省值是16M(某些机型是24M),对于普通应用这是不能改的。函数setMinimumHeapSize其实只是改变了堆的下限值,它可以防止过于频繁的堆内存分配,当设置最小堆内存大小超过上限值时仍然采用堆的上限值,对于内存不足没什么作用。

更多相关文章

  1. Android(安卓)handler的Context内存泄露
  2. Android中的获取内存信息的相关命令
  3. Android(安卓)常用的SDCARD和内存操作
  4. 技术|Android安装包优化
  5. Android(安卓)一行代码全局应用内屏蔽系统设置字体和显示大小
  6. Android中屏幕密度和图片大小的关系分析
  7. Android根据文件路径加载指定文件
  8. android设置Spinner字体颜色,格式,大小
  9. android 内存使用

随机推荐

  1. 一个老程序员的Android学习路线指南
  2. Android双击退出
  3. android studio使用github
  4. [Android学习笔记五] Android View和Widg
  5. Android(OPhone) 学习笔记 - SharedPrefere
  6. What Is Bootloader And How To Unlock B
  7. 基于 Android 的英文电子词典
  8. 2020.8.12 京东Android开发工程师一面面
  9. Android - API Levels-
  10. Android ScrollView中的组件设置android: