快過年了,趕在年末寫點(diǎn)技術(shù)文章,這一年好像沒有寫多少技術(shù)類文章,來年繼續(xù)努力!
言歸正傳,MMKV相對于SP有哪些優(yōu)勢呢?
在微信客戶端的日常運(yùn)營中,時不時就會爆發(fā)特殊文字引起系統(tǒng)的 crash,參考文章,文章里面設(shè)計的技術(shù)方案是在關(guān)鍵代碼前后進(jìn)行計數(shù)器的加減,通過檢查計數(shù)器的異常,來發(fā)現(xiàn)引起閃退的異常文字。在會話列表、會話界面等有大量 cell 的地方,希望新加的計時器不會影響滑動性能;另外這些計數(shù)器還要永久存儲下來——因?yàn)殚W退隨時可能發(fā)生。這就需要一個性能非常高的通用 key-value 存儲組件,我們考察了 SharedPreferences、NSUserDefaults、SQLite 等常見組件,發(fā)現(xiàn)都沒能滿足如此苛刻的性能要求??紤]到這個防 crash 方案最主要的訴求還是實(shí)時寫入,而 mmap 內(nèi)存映射文件剛好滿足這種需求,我們嘗試通過它來實(shí)現(xiàn)一套 key-value 組件。
使用方法:
1:引入
implementation'com.tencent:mmkv:1.0.17'
2:初始化
String rootDir = MMKV.initialize(this);//初始化
3:存值
kv.encode("string","這里是緩存的值");
kv.putString("string","sdkfsdfs");
4:取值
String str = kv.decodeString("string");
String value = kv.getString("string","111");
這里需要注意MMKV緩存的路徑:

小朋友們會使用MMKV了嗎.