/AppCache

Android app 缓存解决方案 流式编码方式

Primary LanguageJava

#通知:

此工具已经不再维护,遇到问题需自行解决哦。作者现在已经不写Android 了,写java以及做别的事情了 没有时间维护了,实属抱歉哈。

AppCache

Android app DiskLruCache缓存封装

1.5.0的版本是有史以来最大的更新,一个字,就是简单易用!!!

介绍

Android 应用缓存很常见,大多数应用都在使用DiskLruCache缓存技术,也有很多人介绍过DiskLruCache,一次我在这里就不介绍了。

DiskLruCache用起来不难,但是如果不加以封装的话,你会遇到各种open呀各种方法的组合,总之,不加以封装,还是比较麻烦的,于是就有了这篇博客,一行代码即可搞定缓存。

效果演示

这里写图片描述

以上就是保存缓存数据以及读取缓存数据的效果

支持

能缓存些什么数据?

  1. 任何java对象,包括List集合。
  2. 图片

该缓存工具主要缓存java对象,当然你如果要缓存json数据也可以,你可以把他当做String对象缓存到本地,读取的时候读取String数据就好,图片主要是将流缓存到本地,然后读取的时候读取本地保存的流就好。

使用DiskLruCache缓存技术

使用DiskLruCache缓存技术的好处在于,你不用关心缓存的过期时间,以及缓存大小的问题,也不用关心版本变化后数据格式改变的问题,他会自动判断软件版本,也会自动删除过期的旧数据,保证取到的数据没有问题,也不用关心SD卡的异常问题

如何使用

实际上,该工具的使用远远要比你想象的简单

1.保存缓存

  1. 保存java对象

     String cachePath = getCacheDir(this);
    
     User user = new User();
      user.name = "fussen";
      user.age = "100";
    
     Cache.with(this)
          .path(cachePath)
          .saveCache("key1", user);
    
  2. 保存List集合数据

     List<String> mData = new ArrayList<>();
    
     String cachePath = getCacheDir(this);
    
     Cache.with(this)
          .path(cachePath))
          .saveCache("key2", mData);
    
  3. 保存图片

     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.读取缓存

  1. 读取java对象缓存

     String cachePath = getCacheDir(this);
     User user = Cache.with(this)
                      .path(cachePath)
                      .getCache("key1", User.class);
    
  2. 读取List集合数据

     String cachePath = getCacheDir(this);
     List<String> cacheList = Cache.with(this)
     			      .path(cachePath)
     			      .getCacheList("key2", String.class);
    
  3. 读取图片缓存

     String cachePath = getCacheDir(this);
     
     Bitmap cacheBitmap = Cache.with(this)
     		          .path(cachePath)
     		          .getImageCache(imageUrl);
     	imageView.setImageBitmap(cacheBitmap);
    

经过以上步骤,你的缓存将会保存到本地,如图:

journal为DiskLruCache缓存经典标识文件。

3.说明:

  1. 该工具可以设置缓存路径,也可以不用设置,默认的缓存路径是: /sdcard/Android/data/(应用包名)/cache
  2. 参数key为缓存文件的唯一标识,图片缓存以图片的url为唯一标识
  3. 缓存文件名为md5编码后的名称

依赖

 dependencies  {
	 compile 'cc.fussen:cachelibrary:1.5.1'
   }