文章目錄
- 你好 MMKV!
- 為什么要使用 MMKV
- 代碼使用
- 引入
- 最簡單的代碼栗子
- GitHub
你好 MMKV!

MMKV是騰訊開源的輕量級持久化存盤框架,相比于傳統的SharedPreFerences(以下簡稱SP),優點有很多
- MMKV有更好的鎖機制來保證資料的完整,而SP的跨行程和apply機制會導致資料的丟失
- SP是全量更新,也正因如此,它的時間開銷更大,MMKV存盤是mmap,無需全量寫入
- MMKV同時也能夠直接匯入SP中的資料
- 使用MMKV能夠更好的避免程式ANR
…
為什么要使用 MMKV
使用SP低性能導致程式ANR,commit 和 apply 均可能會造成ANR,這也是Android工程師最為痛恨的大病之一,所以使用MMKV可以避免此問題,使得自己心情舒暢!從下圖看出MMKV與SP的讀寫耗時對比,MMKV也是毫不遜色的!
(下面這一個圖是我自己寫的代碼測驗所得到的)

MMKV Github給出的:
Writing random int for 10000 times, we get this chart:
寫入隨機Int值10000次所得到的圖表

代碼使用
來實操一下,看看MMKV耐不耐操
引入
dependencies {
implementation 'com.tencent:mmkv-static:1.2.9'
}
最簡單的代碼栗子
1、在Application初始化
MMKV.initialize(this)//會回傳MMVK存盤的目錄(String)
2、創建MMKV,可以通過 defaultMMKV() 來創建,這個是全域默認的;也可以通過 mmkvWithID() 對應自己業務來創建,如下:
val mmkv = MMKV.defaultMMKV()
val mmkv = MMKV.mmkvWithID("mmapID")
3、資料寫入,可以寫入Int,String,Boolean,Long,Float,Double型別的資料,只需要呼叫 encode() 方法寫入資料,會根據資料型別進行多載,
//寫入Int
mmkv.encode("keyName1", 123)
//寫入String
mmkv.encode("keyName2", "Text")
//寫入Boolean
mmkv.encode("keyName3", true)
//寫入Long
mmkv.encode("keyName4", 123L)
...
4、資料讀取,通過 decode 來進行讀取
//讀取key為keyName1的Int型別資料
mmkv.decodeInt("keyName1")
//讀取key為keyName1的Int型別資料,如果對應key的值不存在,會回傳默認值123
mmkv.decodeInt("keyName1",123)
//讀取key為keyName2的String型別資料,如果對應key的值不存在,會回傳null,建議用下一個
mmkv.decodeString("keyName2")
//讀取key為keyName2的String型別資料,如果對應key的值不存在,會回傳默認字串:defaultValue
mmkv.decodeString("keyName2", "defaultValue")
//不再舉例,Boolean,Long,Float,Double參考以上使用
GitHub
MMKV:https://github.com/Tencent/MMKV
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286254.html
標籤:其他
上一篇:Docker 從入門到實踐系列三 - Docker 常用命令
下一篇:太原理工大學2021軟體學院資料結構課程設計第二題(構造可以使n個城市連接的最小生成樹)核心代碼(2021.6.6)
