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"
}
}
}
内置混淆,不需要任何配置.