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
- Android 基于Key-Value的缓存管理
- golang的一个基于内存的key-value 缓存
- 基于共享内存的key-value存储
- 基于共享内存的key-value存储
- 基于key-value的存储系统Redis
- 基于key-value的存储系统Redis
- 面向HBase的内存key-value缓存的实现
- Map<Key,Value>基于Value值排序
- 基于Key-Value对的排序(Java版)
- KVO Key Value Observing 基于键值的观察者
- 常见Key-Value存储系统的内存管理策略解析
- 文件数据缓存(key-Value)
- Android 遍历Hashmap里面的key 和value
- Android 开发 打印出intent 的key和value
- 【Stackoverflow好问题】Map<Key,Value>基于Value值排序
- HBase Key-Value的组成
- 简单的key-value实现
- DBInputFormat的key value 格式
- 初识依赖注入
- Appium 解决异常输入
- 满天星
- UML中静态与动态视图的总体介绍
- 面向对象
- Android 基于Key-Value的缓存管理
- Charles 从入门到精通
- Rxjava详解
- 面试-一道经典的sql语句题
- android自定义View&自定义ViewGroup(下)
- cooseek使用总结
- LeetCode 485. Max Consecutive Ones
- The C++ Programming Language 读书笔记(三)
- 为JFileChooser设定扩展名过滤