Android SharedPreferences的替代方案MMKV
什么是MMKV?
MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。
https://github.com/Tencent/MMKV
为什么要替代SharedPreferences?
首先 安全性好。 SP实际上是把键值对放到本地文件中进行存储。如果要保证数据安全需要自己加密。
其次 读写速度更快。 MMKV是放在内存里面,通过Ashmem 匿名共享内存实现,读取和写入更方便。
第三 支持多线程访问。由于实现机制是放在匿名共享内存,你不需要关注内存释放之后的回写和读取。对于多线程支持更好。
第四 效率更高。MMKV 使用protobuf进行序列化和反序列化,比起SP的xml存放方式,更加高效。
最重要的是 MMKV支持从 SP里面进行迁移。
以上这些优点 基本可以作为一个程序员对于代码 “简洁、高效、安全、友好、扩展性好”的追求。 所以以后你还用SP吗?
MMKV的使用
- 依赖注入
代码块
dependencies { implementation 'com.tencent:mmkv:1.0.10' // replace "1.0.10" with any available version }
- 在Application中进行初始化
【Android SharedPreferences的替代方案MMKV】代码块
MMKV.initialize(this);
- 直接使用
代码块
import com.tencent.mmkv.MMKV; MMKV kv = MMKV.defaultMMKV(); ? kv.encode("bool", true); boolean bValue = https://www.it610.com/article/kv.decodeBool("bool"); ? kv.encode("int", Integer.MIN_VALUE); int iValue = https://www.it610.com/article/kv.decodeInt("int"); ? kv.encode("string", "Hello from mmkv"); String str = kv.decodeString("string");
MMKV* mmkv = MMKV.mmkvWithID("MyID");
mmkv.encode("bool", true);
5. 多进程模式
MMKV* mmkv = MMKV.mmkvWithID("InterProcessKV", MMKV.MULTI_PROCESS_MODE);
mmkv.encode("bool", true);
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量