美文网首页
轻量级数据存储 -- MMKV

轻量级数据存储 -- MMKV

作者: TomyZhang | 来源:发表于2020-05-24 16:42 被阅读0次

    一、使用

    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
    

    相关文章

      网友评论

          本文标题:轻量级数据存储 -- MMKV

          本文链接:https://www.haomeiwen.com/subject/rqsjahtx.html