Android遇到内存溢出(Out Of Memory)BUG的经验与解决方法

2014-11-24 10:55:56 ? 作者: ? 浏览: 0

突然出现的Out Of Memory这个BUG导致我们项目中断了好几天,在经过不断地摸索之后,今天终于得到了解决。鉴于其强大的破坏力与多发性(尤其是当开发图形丰富的软件时),在此将解决方法同大家分享,希望大家以后少走弯路,而本人水平有限,如有不当,还望指教!


那么,首先让我们来看看遇到这个BUG时系统输出的Log:















按我们的经验一行一行地分析,发现了报错的原因:bitmap size exceeds VM budget,


中文意思是bitmap占用的内存大小超过了虚拟机(DVM)的允许值。


带着这个信息,我去问谷哥和度娘,果然有大把大把的人遇到了这个问题,有的人还长久以来身陷其中,难以自拔~~


而解决方案则是五花八门,但是有的网友却反映这些网上通用的解决方案完全没作用!?


我并没有尝试所有网上的解决方法,在尝试了部分之后确实没有起到多少作用,该出BUG的地方照出不误,


搞得我甚至有点怀疑这是Google的一个设计缺陷。


而报的错正是bitmap size exceeds VM budget.


现在好了,这一切看似如此简单:要想程序的bitmap小于8M,要么就在用了bitmap后立即回收这部分内存,要么就压缩图片的大小啊。


依据这两点思路,我在我的项目中进行了实践。


(一般而言,只用这两种方法就可以解决大部分Out Of Memory的BUG,如果还不能解决,请继续往下看)


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: