AppCache
Introduction: Android app DiskLruCache 缓存封装
Tags:
此工具已经不再维护,遇到问题需自行解决哦。作者现在已经不写 Android 了,写 java 以及做别的事情了 没有时间维护了,实属抱歉哈。
AppCache
Android app DiskLruCache 缓存封装
1.5.0 的版本是有史以来最大的更新,一个字,就是简单易用!!!
介绍
Android 应用缓存很常见,大多数应用都在使用 DiskLruCache 缓存技术,也有很多人介绍过 DiskLruCache,一次我在这里就不介绍了。
DiskLruCache 用起来不难,但是如果不加以封装的话,你会遇到各种 open 呀各种方法的组合,总之,不加以封装,还是比较麻烦的,于是就有了这篇博客,一行代码即可搞定缓存。
效果演示
以上就是保存缓存数据以及读取缓存数据的效果
支持
能缓存些什么数据?
- 任何 java 对象,包括 List 集合。
图片
该缓存工具主要缓存 java 对象,当然你如果要缓存 json 数据也可以,你可以把他当做 String 对象缓存到本地,读取的时候读取 String 数据就好,图片主要是将流缓存到本地,然后读取的时候读取本地保存的流就好。
使用 DiskLruCache 缓存技术
使用 DiskLruCache 缓存技术的好处在于,你不用关心缓存的过期时间,以及缓存大小的问题,也不用关心版本变化后数据格式改变的问题,他会自动判断软件版本,也会自动删除过期的旧数据,保证取到的数据没有问题,也不用关心 SD 卡的异常问题
如何使用
实际上,该工具的使用远远要比你想象的简单
1.保存缓存
保存 java 对象
String cachePath = getCacheDir(this); User user = new User(); user.name = "fussen"; user.age = "100"; Cache.with(this) .path(cachePath) .saveCache("key1", user);
保存 List 集合数据
List<String> mData = new ArrayList<>(); String cachePath = getCacheDir(this); Cache.with(this) .path(cachePath)) .saveCache("key2", mData);
保存图片
String imageUrl = "http://img.my.csdn.net/uploads/201407/26/1406383059_2237.jpg"; tring cachePath = getCacheDir(this); Cache.with(this) .path(cachePath) .saveImage(imageUrl);
2.读取缓存
读取 java 对象缓存
String cachePath = getCacheDir(this); User user = Cache.with(this) .path(cachePath) .getCache("key1", User.class);
读取 List 集合数据
String cachePath = getCacheDir(this); List<String> cacheList = Cache.with(this) .path(cachePath) .getCacheList("key2", String.class);
读取图片缓存
String cachePath = getCacheDir(this); Bitmap cacheBitmap = Cache.with(this) .path(cachePath) .getImageCache(imageUrl); imageView.setImageBitmap(cacheBitmap);
经过以上步骤,你的缓存将会保存到本地,如图:
journal 为 DiskLruCache 缓存经典标识文件。
3.说明:
- 该工具可以设置缓存路径,也可以不用设置,默认的缓存路径是: /sdcard/Android/data/(应用包名)/cache
- 参数 key 为缓存文件的唯一标识,图片缓存以图片的 url 为唯一标识
- 缓存文件名为 md5 编码后的名称
依赖
dependencies {
compile 'cc.fussen:cachelibrary:1.5.1'
}