正文  高级教程 > 程序优化 >

处理OOM的几种方法 android开发教程

android图片退栈只有6M,意思就是当你对内存什么也不做的时候,你仅仅放了几张图片的时候,就会报出OOM。那么我们应当怎么做呢?第一个就是扩大虚拟机的内存容量。你可以在网上查到类似的方法:在项目中引入 al......

android图片退栈只有6M,意思就是当你对内存什么也不做的时候,你仅仅放了几张图片的时候,就会报出OOM。那么我们应当怎么做呢?
第一个就是扩大虚拟机的内存容量。你可以在网上查到类似的方法:在项目中引入 alvik.system.VMRuntime包。这个方法有个缺陷,就是但你的项目平台高于2.2的时候会报错。android从2.2后就停用这个包了。如果你要用那么你要把你的项目转到2.2上,或者强制编译,当然你要手动引入这个包。
第二个就是提升内存的使用效率,还是 alvik.system.VMRuntime 包,它不仅可以指定堆栈大小,而且可以针对特定平台优化内存回收效率。还有一种简单的方法:及时施放无用资源Bitmap有方法isRecycle()和 recycle(),在调用这两个方法后再手动gc一下,就可以提升内存使用效率。第三就是,使用弱类型指针weakReference。
以上乃个人愚见,如有错漏,望指引笔者