MMKV_高性能MMKV数据交互分析-MMKV初始化
什么是mmkv?
mmkv 是基于 mmap 內(nèi)存映射的移動端通用 key-value 組件,底層序列化/反序列化使用 protobuf 實現(xiàn),性能高,穩(wěn)定性強(qiáng)。
https://github.com/tencent/mmkv
為什么要替代sharedpreferences?
首先 安全性好。 sp實際上是把鍵值對放到本地文件中進(jìn)行存儲。如果要保證數(shù)據(jù)安全需要自己加密。
其次 讀寫速度更快。 mmkv是放在內(nèi)存里面,通過ashmem 匿名共享內(nèi)存實現(xiàn),讀取和寫入更方便。
第三 支持多線程訪問。由于實現(xiàn)機(jī)制是放在匿名共享內(nèi)存,你不需要關(guān)注內(nèi)存釋放之后的回寫和讀取。對于多線程支持更好。
第四 效率更高。mmkv 使用protobuf進(jìn)行序列化和反序列化,比起sp的xml存放方式,更加高效。
最重要的是 mmkv支持從 sp里面進(jìn)行遷移。
以上這些優(yōu)點 基本可以作為一個程序員對于代碼 “簡潔、高效、安全、友好、擴(kuò)展性好”的追求。 所以以后你還用sp嗎?
1.依賴注入
dependencies {
implementation 'com.tencent:mmkv:1.0.10'
// replace "1.0.10" with any available version
}
2.在application中進(jìn)行初始化
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. 多進(jìn)程模式
mmkv* mmkv = mmkv.mmkvwithid("interprocesskv", mmkv.multi_process_mode);
mmkv.encode("bool", true);
如您對本文有疑問或者有任何想說的,請點擊進(jìn)行留言回復(fù),萬千網(wǎng)友為您解惑!
總結(jié)
以上是生活随笔為你收集整理的MMKV_高性能MMKV数据交互分析-MMKV初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: strcat()
- 下一篇: 怎么让sublime text3可以运行