辽宁省教育网,商户提交表单接口名称错误,剪切快捷键
什么是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);
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android Manifest中meta-data扩展元素数据的配置与获取方式
Android实现获取meta-data和build.gradle的值
Android获取清单文件中的meta-data,解决碰到数值为null的问题
解决webview 第二次调用loadUrl页面不刷新的问题
解决Android WebView拦截url,视频播放加载失败的问题
Android webview加载https链接错误或无响应的解决
网友评论