MeKV 是 Android Key-Value 管理框架,为了解决 Android 平台下各种繁琐的配置类代码
使用了 https://github.com/Tencent/MMKV 来存储数据,支持自定义存储数据
- 不用写 get/set
- 自动生成代码
- 可以自定义后缀
dependencies { implementation 'vip.ruoyun.mekv:mekv-core:1.0.1' annotationProcessor 'vip.ruoyun.mekv:mekv-compiler:1.0.1' }
初始化
MeKV.init(new MMKVStrategy(this));
两种模式
- model 模式
- key-value 模式
支持的类型
- Parcelable
@MeKV(model = true) //model 默认为 true public class User implements Parcelable { private String name; public String getName() { return name; } public void setName(final String name) { this.name = name; } //...Parcelable code }
生成的代码
使用
User user = UserMeKV.getUser();//获取 if (user != null) { user.setName(""); user.getName(); } UserMeKV.saveUser(user);//保存 UserMeKV.remove();//清除
支持的类型
- String
- float
- boolean
- double
- long
- int
- byte[]
Set<String>
- Parcelable
- 不支持包装类型
设置 @MeKV(model = false) ,model 为 false
@MeKV(model = false) public class People { //不需要 get/set 方法 @Ignore//不会自动生成属性代码 private String name; private boolean isOld; private int age; private double doubleMoney; private long longMoney; private byte[] mBytes; private User user;//对象 必须 implements Parcelable private Set<String> setString; }
使用
PeopleMeKV.saveName("value");//保存 PeopleMeKV.getName();//获取 PeopleMeKV.removeName();//删除对应的字段信息
生成的代码
MeKV.clear();//清除所有记录
默认为包名+生成的类名。
@MeKV(key = "CustomKeyUserKey") public class User implements Parcelable { ... }
默认为 MeKV 后缀。
@MeKV(suffix = "Manger") public class People { .... } //生成类 PeopleManager
MMKV mmkv = MMKV.defaultMMKV(); ...code//MMKV高级特性 MeKV.init(new MMKVStrategy(mmkv));
MMKV 默认提供各种版本的 so文件,可以进行配置
android { compileSdkVersion 29 minSdkVersion 16 //MMKV 要求最低版本 defaultConfig { ndk { abiFilters "armeabi-v7a" } } }
内置混淆,不需要任何配置.