zoukankan      html  css  js  c++  java
  • 高性能MMKV数据交互分析-MMKV初始化

    什么是MMKV?

    MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。

    https://github.com/Tencent/MMKV

    为什么要替代SharedPreferences?

    首先 安全性好。 SP实际上是把键值对放到本地文件中进行存储。如果要保证数据安全需要自己加密。

    其次 读写速度更快。 MMKV是放在内存里面,通过Ashmem 匿名共享内存实现,读取和写入更方便。

    第三 支持多线程访问。由于实现机制是放在匿名共享内存,你不需要关注内存释放之后的回写和读取。对于多线程支持更好。

    第四 效率更高。MMKV 使用protobuf进行序列化和反序列化,比起SP的xml存放方式,更加高效。

    最重要的是 MMKV支持从 SP里面进行迁移。

    以上这些优点 基本可以作为一个程序员对于代码 “简洁、高效、安全、友好、扩展性好”的追求。 所以以后你还用SP吗?

    1.依赖注入

    dependencies {
        implementation 'com.tencent:mmkv:1.0.10'
        // replace "1.0.10" with any available version
    }

    2.在Application中进行初始化

    MMKV.initialize(this);

    3.直接使用

    import com.tencent.mmkv.MMKV;
     
    MMKV kv = MMKV.defaultMMKV();
    ​
    kv.encode("bool", true);
    boolean bValue = kv.decodeBool("bool");
    ​
    kv.encode("int", Integer.MIN_VALUE);
    int iValue = kv.decodeInt("int");
    ​
    kv.encode("string", "Hello from mmkv");
    String str = kv.decodeString("string");

     4. 分开使用多个MMKV实例例

    MMKV* mmkv = MMKV.mmkvWithID("MyID");
    mmkv.encode("bool", true);

    5. 多进程模式

    MMKV* mmkv = MMKV.mmkvWithID("InterProcessKV", MMKV.MULTI_PROCESS_MODE);
    mmkv.encode("bool", true);
  • 相关阅读:
    mysql替代like模糊查询的方法
    8个超实用的jQuery插件应用
    判断登陆设备是否为手机
    SQL tp3.2 批量更新 saveAll
    SQL-批量插入和批量更新
    防止手机端底部导航被搜索框顶起
    php COM
    thinkphp3.2 where 条件查询 复查的查询语句
    Form表单提交,js验证
    jupyter notebook 使用cmd命令窗口打开
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/12725662.html
Copyright © 2011-2022 走看看