一、使用
MMKV使用
//build.gradle
implementation 'com.tencent:mmkv:1.0.19'
//MyApplication
String rootDir = MMKV.initialize(this);
Log.d(TAG, "zwm, mmkv root: " + rootDir);
//MainActivity
MMKV mmkv = MMKV.defaultMMKV();
mmkv.encode("default_key", "default_value");
Log.d(TAG, "zwm, default_key: " + mmkv.decodeString("default_key"));
MMKV mmkv2 = MMKV.mmkvWithID("tomorrow");
mmkv2.encode("tomorrow_key", "tomorrow_value");
Log.d(TAG, "zwm, tomorrow_key: " + mmkv2.decodeString("tomorrow_key"));
//日志
zwm, mmkv root: /data/user/0/com.tomorrow.target28/files/mmkv
zwm, default_key: default_value
zwm, tomorrow_key: tomorrow_value
二、原理
MMKV原理
三、封装
import com.tencent.mmkv.MMKV;
public class KVUtils {
public static boolean put(String key, String value) {
MMKV mmkv = MMKV.defaultMMKV();
return mmkv.encode(key, value);
}
public static String get(String key, String defaultValue) {
MMKV mmkv = MMKV.defaultMMKV();
return mmkv.decodeString(key, defaultValue);
}
public static boolean put(String id, String key, String value) {
MMKV mmkv = MMKV.mmkvWithID(id);
return mmkv.encode(key, value);
}
public static String get(String id, String key, String defaultValue) {
MMKV mmkv = MMKV.mmkvWithID(id);
return mmkv.decodeString(key, defaultValue);
}
}
四、迁移
//存储数据到SharedPreferences
//SharedPreferences sp = getSharedPreferences("sp_name", MODE_PRIVATE);
//sp.edit().putString("sp_key", "sp_value").apply();
//Log.d(TAG, "zwm, sp_key: " + sp.getString("sp_key", null));
//从SharedPreferences迁移数据到MMKV
MMKV mmkv = MMKV.mmkvWithID("sp_name");
SharedPreferences sp = getSharedPreferences("sp_name", MODE_PRIVATE);
int size = mmkv.importFromSharedPreferences(sp);
sp.edit().clear().commit();
Log.d(TAG, "zwm, importFromSharedPreferences, size: " + size);
//从MMKV读取数据
Log.d(TAG, "zwm, sp_key: " + KVUtils.get("sp_name", "sp_key", null));
//日志
zwm, importFromSharedPreferences, size: 1
zwm, sp_key: sp_value
网友评论