Android 应用缓存很常见,大多数应用都在使用DiskLruCache缓存技术,也有不少人介绍过DiskLruCache,所以我在这里就不介绍了。java
DiskLruCache用起来不难,可是若是不加以封装的话,你会遇到各类open呀各类方法的组合,总之,不加以封装,仍是比较麻烦的,因而就有了这篇博客,一行代码便可搞定缓存。json
以上就是保存缓存数据以及读取缓存数据的效果缓存
该缓存工具主要缓存java对象,固然你若是要缓存json数据也能够,你能够把他当作String对象缓存到本地,读取的时候读取String数据就好,图片主要是将流缓存到本地,而后读取的时候读取本地保存的流就好。bash
使用DiskLruCache缓存技术的好处在于,你不用关心缓存的过时时间,以及缓存大小的问题,也不用关心版本变化后数据格式改变的问题,他会自动判断软件版本,也会自动删除过时的旧数据,保证取到的数据没有问题,也不用关心SD卡的异常问题微信
实际上,该工具的使用远远要比你想象的简单ide
1.保存java对象工具
String cachePath = getCacheDir(this);
User user = new User();
user.name = "fussen";
user.age = "100";
Cache.with(this)
.path(cachePath)
.saveCache("key", user);
复制代码
2.保存List集合数据优化
List<String> mData = new ArrayList<>();
String cachePath = getCacheDir(this);
Cache.with(this)
.path(cachePath))
.saveCache("key", mData);
复制代码
3.保存图片this
String imageUrl = "http://img.my.csdn.net/uploads/201407/26/1406383059_2237.jpg";
String cachePath = getCacheDir(this);
Cache.with(this)
.path(cachePath)
.saveImage(imageUrl);
复制代码
1.读取java对象缓存编码
String cachePath = getCacheDir(this);
User user = Cache.with(this)
.path(cachePath)
.getCache("key", User.class);
复制代码
2.读取List集合数据
String cachePath = getCacheDir(this);
List<String> cacheList = Cache.with(this)
.path(cachePath)
.getCacheList("key", String.class);
复制代码
3.读取图片缓存
String cachePath = getCacheDir(this);
Bitmap cacheBitmap = Cache.with(this)
.path(cachePath)
.getImageCache(imageUrl);
imageView.setImageBitmap(cacheBitmap);
复制代码
通过以上步骤,你的缓存将会保存到本地,如图:
journal为DiskLruCache缓存经典标识文件。
dependencies{
compile 'cc.fussen:cachelibrary:1.5.0'
}
复制代码