腾讯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