缓存—— 给我们带来了 良好的用户体验,急速的加载内容。
DiskLruCahce 这个磁盘缓存框架大家应该都不陌生,今天了解一下他的用法和大概的实现。
github 地址 :https://github.com/JakeWharton/DiskLruCache
Gradle 依赖 compile 'com.jakewharton:disklrucache:2.0.2'
初始化的过程 设置缓存路径以及缓存尺寸,路径建议是设在 系统的 data 文件夹中,无论是 internalStorage 还是 externalStorage 都会在 app 被卸载的时候被系统清除,当然也可以放在自定义的 sd 卡中。
(这里我犯了一个错,造成我的图片无法进行缓存,下载成功,其他无报错,后来发现是我的缓存大小设置的小于要缓存的图片了…… 很尴尬)
由上图我们看到 使用的流程为
1、创建 editor 对象
2、获取缓存对象的输出流 newOutputStream
3、执行缓存 commit/取消缓存abort
1、获取一个 snapShot 对象
2、获取输入流
3、生成 bitmap