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'
}
複製代碼