高性能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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM