设为首页 加入收藏

TOP

Android OOM的那些事
2014-11-24 13:12:29 来源: 作者: 【 】 浏览:0
Tags:Android OOM 那些

Context部分


View的构造函数


View.java


View 保存了对context的引用,mContext = context;


1.我们知道结构其实和DOM差不多,都会保存其父容器、子容器的引用,因而context的使用需要注意,不要使用静态的子View


2.来看View中的setBackgroundDrawable方法


View.java



我们注意到d.setCallback(this);


Drawable保存了View的引用,处理了一些回调。因此,Drawable对象使用时需要注意了。不要作为静态对象使用。



Resource.getDrewable()方法是比较好的,Resource内部使用了一个Drawable.ConstantState的弱引用缓存,提高了效率。


来看代码:


Resource.java



使用Drawable一般情况下效率较高,且不易发生内存泄露。



接下来我们来看下BitMap的使用



BitMapFactory.java



我们每次调用BitMapFactory中的生产bitmap的方法的时候都会new一个bitmap出来,为了避免内存溢出,我们有两种主要的思路:


1. 使用缓存,避免重复new同一个图片


2. 销毁bitmap,使用完之后立刻销毁bitmap


缓存需要自己实现,如果是销毁的话,可以使用Bitmap中的recycle()方法。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android .9.png使用 下一篇Android Webview Webviewcore 空..

评论

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