MMKV
MMKV——基於 mmap 的高性能通用 key-value 組件,底層序列化/反序列化使用 protobuf 實現,性能高,穩定性強。
從 2015 年中至今,在 iOS 微信上使用已有近 3 年,其性能和穩定性經過了時間的驗證。
近期已移植到 Android 平臺。在騰訊內部開源半年之後,得到公司內部團隊的廣泛應用和一致好評。
通過 mmap 內存映射文件,提供一段可供隨時寫入的內存塊,App 只管往裏面寫數據,
由操作系統負責將內存回寫到文件,不必擔心 crash 導致數據丟失。
快速上手
添加依賴:
dependencies {
implementation 'com.tencent:mmkv:1.0.23'
// replace "1.0.23" with any available version
}
在 App 啓動時初始化 MMKV,設定 MMKV 的根目錄
(默認/data/data/xxx/files/mmkv/)
(sp存儲在/data/data/xxx/shared_prefs)
初始化方式:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String rootDir = MMKV.initialize(this);
System.out.println("mmkv root: " + rootDir);
//……
}
所有變更立馬生效,無需調用 sync、apply。
MMKV 會提供一個全局的實例,使用實例:
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");