什么是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 = https://www.cnblogs.com/ganchuanpu/p/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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/11368.html
標籤:Android
