騰訊MMKV正式支持純血鴻蒙

騰訊的數據存儲mmkv方案正式支持鴻蒙NEXT版本,也預示着騰訊系對鴻蒙的支持和適配上的投入。

什麼是MMKV

MMKV 是基於 mmap 內存映射的 key-value 組件,底層序列化/反序列化使用 protobuf 實現,性能高,穩定性強。從 2015 年中至今在微信上使用,其性能和穩定性經過了時間的驗證。近期也已移植到 Android / macOS / Windows / POSIX / HarmonyOS NEXT 等平臺,一併開源。

MMKV 原理

內存準備 通過 mmap 內存映射文件,提供一段可供隨時寫入的內存塊,App 只管往裡面寫數據,由操作系統負責將內存回寫到文件,不必擔心 crash 導致數據丟失。

數據組織 數據序列化方面我們選用 protobuf 協議,pb 在性能和空間佔用上都有不錯的表現。

寫入優化 考慮到主要使用場景是頻繁地進行寫入更新,我們需要有增量更新的能力。我們考慮將增量 kv 對象序列化後,append 到內存末尾。

空間增長 使用 append 實現增量更新帶來了一個新的問題,就是不斷 append 的話,文件大小會增長得不可控。我們需要在性能和空間上做個折中。

MMKV 的使用非常簡單,所有變更立馬生效,無需調用 save、sync。在 App 啓動時初始化 MMKV,設定 MMKV 的根目錄,例如在 EntryAbility.onCreate() 裡:

鴻蒙發展如火如荼,千帆起,百舸爭流。

官網鏈接:https://github.com/Tencent/MMKV/tree/master