Android 基于Key-Value的缓存管理

来源:互联网 发布:程序员什么时候跳槽好 编辑:程序博客网 时间:2024/06/06 08:54

MLCache

在开发过程中,我们通常需要将一些简单数据持久化到本地,比如:用户信息,app信息(新手引导等),可能还需要缓存http reponse信息。这个库可以使你很方便的创建、管理缓存(存储数据、获取数据、清空数据),并且是面向接口的,可以很方便的扩展,内置了SharedPreferences和SnappyDB两种缓存方式,其中SnappyDB可以自定义缓存路径,比较适合做接口数据缓存。

使用方法:

Step 1.在Application中初始化

public class BaseApp extends Application{    @Override    public void onCreate() {        super.onCreate();        CacheManager.init(getApplicationContext());    }}

Step 2. 创建Cache的配置,可以放到任意位置,下边以放到常量类为例:

public class Constants {    public static final CacheOptions userCacheOptions = new CacheOptions.Builder().debugable(false).defaultCacheType(CacheOptions.TYPE_PREFERENCE).defaultFileName("user_cache").build();}

Step 3. 保存、获取、删除、情况缓存数据,使用示例:

// sava valuesCacheManager.instance(Constants.userCacheOptions)                .put("userName", "Michael")                .put("married", false)                .put("float", 0.1f)                .put("age", 28)                .put("long", 1L)                .apply();// get valueString userName = CacheManager.instance(Constants.userCacheOptions).get("userName", "");// tests whether the value existsboolean containUser = CacheManager.instance(Constants.userCacheOptions).contains("userName");// remove valueCacheManager.instance(Constants.userCacheOptions).remove("userName");// clear valuesCacheManager.instance(Constants.userCacheOptions).clear();

Step 4. 配置混淆规则

-keep class sun.misc.**-keep class sun.nio.**-keep class java.beans.**-keep class sun.nio.ch.**-keep class com.snappydb.**-keep class com.snappydb.internal.DBImpl { *; }-keep class com.esotericsoftware.kryo.** { *; }-dontwarn com.esotericsoftware.kryo.**-dontwarn org.objenesis.instantiator.**

依赖

Snappydb is download from:https://github.com/nhachicha/SnappyDB

项目地址

https://github.com/Michaelliu1989/MLCache

0 0
原创粉丝点击