没有合适的资源?快使用搜索试试~ 我知道了~
三级缓存DiskLruCache+LruCache
需积分: 6 11 下载量 79 浏览量
2015-05-04
16:10:04
上传
评论
收藏 25KB DOCX 举报
温馨提示
试读
3页
内存-文件-网络 三层cache机制,其中内存缓存包括强引用缓存和软引用缓存(SoftReference),其实网络不算cache,这里姑且也把它划到缓存的层次结构中。当根据url向网络拉取图片的时候,先从内存中找,如果内存中没有,再从缓存文件中查找,如果缓存文件中也没有,再从网络上通过http请求拉取图片。在键值对(key-value)中,这个图片缓存的key是图片url的hash值,value就是Bitmap。所以,按照这个逻辑,只要一个url被下载过,其图片就被缓存起来了。
资源推荐
资源详情
资源评论
三级缓存图片实现
作者——狼
三级缓存出现的原因
假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于
非 wi
用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响。当然,
我想,向百度美拍这样的应用,必然也有其内部的图片缓存策略。总之,图片缓存是很重要而且
是必须的。
缓存原理
内 存 - 文 件 - 网 络 三 层 cache 机 制 , 其 中 内 存 缓 存 包 括 强 引 用 缓 存 和 软 引 用 缓 存
(SoReference),其实网络不算 cache,这里姑且也把它划到缓存的层次结构中。当根据 url 向网
络拉取图片的时候,先从内存中找,如果内存中没有,再从缓存文件中查找,如果缓存文件中也
没有,再从网络上通过 hp 请求拉取图片。在键值对(key-value)中,这个图片缓存的 key 是图片
url 的 hash 值,value 就是 Bitmap。所以,按照这个逻辑,只要一个 url 被下载过,其图片就被缓存
起来了。
关于 Java
中对象的软引用(SoReference),如果一个对象具有软引用,内存空间足够,垃
圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有
回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高 速缓存。使用软引用能防止
内存泄露,增强程序的健壮性。
强应用、软引用、弱引用、虚引用,区别
在 JDK1.2 以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。
也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某
样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如
果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。
但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品,食之无味,弃之可惜。这
种物品现在已经无用了,保留它会占空间,但是立刻扔掉它也不划算,因 为也许将来还会派用场。
对于这样的可有可无的物品,一种折衷的处理办法是:如果家里空间足够,就先把它保留在家里 ,
如果家里空间不够,即使把家里所有的垃 圾清除,还是无法容纳那些必不可少的生活用品,那么
再扔掉这些可有可无的物品。
从 JDK1.2 版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周
资源评论
cunzhang201146
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功