王学岗Android的三级缓存(待续)
2016-06-28 18:01
363 查看
什么是三级缓存:加载网络上的图片的时候从哪个地方加载
一级:内存
二级:磁盘(文件,数据库)
三级:网络
app需要从网络加载一张图片:
1,首先从内存中读取,如果有就显示,(提高io效率)
2,没有则从二级缓存磁盘读取(节省资源—内存 cpu 流量)
读取了就立即缓存到内存中
3, 磁盘中也没有这张图片,就去网络加载
获取图片首先缓存到磁盘
然后缓存到我们的内存
三级缓存技术的关键是内从中不常用的图片如何回收,
第一:可以使用软引用,但是在Android2.3之后系统多选择回收软引用;所以这个技术不推荐使用!
第二:LruCache-(least recent used)技术,这是谷歌推荐的,翻译成汉语就是最近最少使用的;先回收最不常用的对象!
网上有些成熟的框架可以使用,如Facebook的frefco,universal-Image-loader.jar(一次全部搞定 网络 内存缓存 磁盘缓存) ,Xutil.jar!
在本文中我们使用volley——网络请求框架((常见的网络请求框架有okhttp nohttp volley )
下面我们介绍下volley框架:
(1)Volley框架非常的灵活,要自己做图片的缓存。
(2)有缓存功能,有时候要配合服务器的响应头来缓存
内部的缓存机制:过期时间,新鲜度:
问题:在系统存储里面。用户系统存储经常不够用。
(3)Volley向外提供了接口,允许开发自己实现缓存。
Volley封装缓存框架
1),网络层 volley处理(有请求队列排队的优化)—会有预留的接口回调:判断当前是否有缓存。
2),内存: LruCache算法硬缓存到内存(不用软引用) android中自带了LruCache类
3),磁盘: LruCache算法缓存到磁盘。谷歌推出了磁盘缓存:DiskLruCache
一级:内存
二级:磁盘(文件,数据库)
三级:网络
app需要从网络加载一张图片:
1,首先从内存中读取,如果有就显示,(提高io效率)
2,没有则从二级缓存磁盘读取(节省资源—内存 cpu 流量)
读取了就立即缓存到内存中
3, 磁盘中也没有这张图片,就去网络加载
获取图片首先缓存到磁盘
然后缓存到我们的内存
三级缓存技术的关键是内从中不常用的图片如何回收,
第一:可以使用软引用,但是在Android2.3之后系统多选择回收软引用;所以这个技术不推荐使用!
第二:LruCache-(least recent used)技术,这是谷歌推荐的,翻译成汉语就是最近最少使用的;先回收最不常用的对象!
网上有些成熟的框架可以使用,如Facebook的frefco,universal-Image-loader.jar(一次全部搞定 网络 内存缓存 磁盘缓存) ,Xutil.jar!
在本文中我们使用volley——网络请求框架((常见的网络请求框架有okhttp nohttp volley )
下面我们介绍下volley框架:
(1)Volley框架非常的灵活,要自己做图片的缓存。
(2)有缓存功能,有时候要配合服务器的响应头来缓存
内部的缓存机制:过期时间,新鲜度:
问题:在系统存储里面。用户系统存储经常不够用。
(3)Volley向外提供了接口,允许开发自己实现缓存。
Volley封装缓存框架
1),网络层 volley处理(有请求队列排队的优化)—会有预留的接口回调:判断当前是否有缓存。
2),内存: LruCache算法硬缓存到内存(不用软引用) android中自带了LruCache类
3),磁盘: LruCache算法缓存到磁盘。谷歌推出了磁盘缓存:DiskLruCache
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件