AppCache

Project Url: FussenYu/AppCache
Introduction: Android app DiskLruCache 缓存封装
More: Author   ReportBugs   
Tags:

此工具已经不再维护,遇到问题需自行解决哦。作者现在已经不写 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);
    
  1. 保存 List 集合数据

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

     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'
   }
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools