android之缓存

三级缓存指的是内存缓存、本地缓存、网络缓存。
内存缓存, 优先加载, 速度最快
本地缓存, 次优先加载, 速度快
网络缓存, 不优先加载, 速度慢,浪费流量
当我们使用内存缓存的时候,常常面临着内存溢出问题。
为此,Android默认给每个app只分配16M的内存。当我们创建对象的时候,
通常将对象放在堆中,引用放在栈中。引用分为以下四类:
强引用 垃圾回收器不会回收, java默认引用都是强引用
软引用 SoftReference   在内存不够时,垃圾回收器会考虑回收
弱引用 WeakReference  在内存不够时,垃圾回收器会优先回收
虚引用 PhantomReference  在内存不够时,垃圾回收器最优先回收
但是在Android2.3+, 系统会优先将SoftReference的对象提前回收掉, 即使内存够用。为此我们使用LruCache进行图片缓存。
LruCache构造方法传入一个最大值,会将内存控制在一定的大小内,
超出最大值时会自动回收,这个最大值开发者自己定。
还有可以用图片压缩原理。
实际开发中我们可以使用工具类来实现。
内存溢出解决方案:
内存溢出一般不容易出现,当在加载大图片时特别是用listview加载时容易出现内存溢出,
为了解决这个问题,我们用三种缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值