标签:context and 解决 成员变量 软引用 分享 内存泄漏 堆内存 构造
内存溢出
产生原因
Android 的虚拟机是基于寄存器的Delvik,它的最大堆内存是16M,有的机器是24M,因此所能用的内存空间是有限的,如果我们的内存占用超过一定水平就会出现OOM异常
对象内存过大
---------保存了多个好用内存的过大的对象(比如Bitmap,XML文件),造成内存超出限制
图片过大导致OOM
- 等比例压缩图片
- 对图片采用软引用,即使回收
1.查看页面布局中有没有大的图片比如背景图之类的
2.直接把XML配置文件加载成View放到容器中
3.页面切换时尽可能少的重复使用一些代码
内存泄漏
程序代码中长期保持某些资源,比如Context、Cursor,IO流的引用,资源得不到释放造成内存泄漏
解决方案
1.避免使用static成员变量引用资源耗费过多的实例,比如Context
context尽量使用ApplicationContext,因为他的生命周期比较长,引用他不会出现内存泄漏问题
使用弱引用代替强引用
标签:context and 解决 成员变量 软引用 分享 内存泄漏 堆内存 构造
原文地址:http://www.cnblogs.com/fanfusuzi/p/6854427.html