新闻详情

新闻详情

首页 / 资讯中心 / 详情

kv4cj API参考手册:MMKV类全接口速查(附常用示例代码)

发布时间:2026/9/25 7:20:39来源:尧图网络
kv4cj API参考手册:MMKV类全接口速查(附常用示例代码)
kv4cj API参考手册MMKV类全接口速查附常用示例代码【免费下载链接】kv4cj一个轻量级的键值存储库项目地址: https://gitcode.com/Cangjie-TPC/kv4cjkv4cj 是一个用仓颉语言Cangjie封装的高性能键值存储库核心就是对MMKV类的完整 API 封装初始化、创建实例、各类类型读写、删除清理、备份恢复、日志回调、加密存储。本文按功能分区梳理 MMKV 类全接口速查表并附上常用示例代码新手照着即可上手。⚡ 30秒快速上手创建第一个 kv4cj 键值存储只需三步初始化根目录 → 创建实例 → 读写键值import kv4cj.* main() { MMKV.initializeMMKV(rootdir) // 1. 初始化根目录 var kv MMKV.mmkvWithID(MyID) // 2. 创建实例 kv.set(greeting, Hello kv4cj) // 3. 写入 println(kv.getString(greeting)) // 读取 }上图展示了 kv4cj 的分层结构仓颉语言层src/mmkv.cj通过 src/native.cj 桥接 C 层 MMKV 内核完成键值存储的高性能读写。 kv4cj 全局常量与类型速查在 src/mmkv_handler.cj 中定义了日志等级等常用常量使用接口前建议先熟悉常量值说明MMKVLogDebug0调试级日志发布版不可用MMKVLogInfo1默认日志等级MMKVLogWarning2警告级日志MMKVLogError3错误级日志MMKVLogNone4关闭全部日志MMKV_SINGLE_PROCESS0x1单进程模式默认MMKV_MULTI_PROCESS0x2多进程模式OnErrorDiscard0出错时丢弃数据OnErrorRecover1出错时尽量恢复数据 MMKV 初始化与实例创建接口接口作用常见用法initializeMMKV(rootDir)设定根目录必须最先调用MMKV.initializeMMKV(rootdir)initializeMMKV(rootDir, logLevel)自定义日志等级见 src/mmkv.cjinitializeMMKV(rootDir, logLevel, handler)自定义日志等级回调见 src/mmkv.cjdefaultMMKV()获取全局默认实例见 src/mmkv.cjdefaultMMKV(mode, cryptKey)指定模式加密密钥的默认实例见 src/mmkv.cjmmkvWithID(mmapID)创建自定义 ID 实例见 src/mmkv.cjmmkvWithID(mmapID, mode, cryptKey, rootPath)全参数创建实例见 src/mmkv.cjgetRootDir()获取当前根目录见 src/mmkv.cj提示mmkvWithID提供 5 种重载ID / 模式 / 密钥 / 路径等组合按需选用。完整签名说明见 doc/feature_api.md。 MMKV 键值读写 set/get 全类型速查kv4cj 支持 8 种常见类型的读写set写入成功返回truekey 为空返回falseget系列在 key 不存在时返回默认值。定义见 src/mmkv.cj写入读取类型默认值set(key, true)getBool(key)Boolfalseset(key, 1)getInt32(key)Int320set(key, 1u)getUInt32(key)UInt320set(key, 1L)getInt64(key)Int640set(key, 1Lu)getUInt64(key)UInt640set(key, 1.0F)getFloat32(key)Float320.0set(key, 1.0)getFloat64(key)Float640.0set(key, s)getString(key)Stringset(key, arr)getBytes(key)Array空数组set(key, set)getStringSet(key)HashSet空集合常用读写示例来自 test/DOC/testExample4.cjkv.set(bool, true) var value kv.getBool(bool) kv.set(string, Hello from mmkv) var str kv.getString(string)️ 删除、清理与关闭接口接口作用备注removeValueForKey(key)删除单个 key见 src/mmkv.cjremoveValuesForKeys(arrKeys)批量删除多个 key见 src/mmkv.cjclearAll()清空全部键值文件体积不会缩小trim()回收删除后占用的磁盘空间大量删除后调用见 src/mmkv.cjclose()关闭实例不再需要时调用clearMemoryCache()释放内存缓存下次访问会从文件重新加载onExit()应用退出时销毁 MMKV静态方法注意clearAll()/ 删除键值后totalSize()不会减小在意磁盘占用时请调用trim()。 MMKV sync 与 async 同步到磁盘接口方式适用场景sync()同步落盘阻塞当前线程关键数据写入后立即保证持久化async()异步落盘不阻塞日常高频写入两者都通过内存映射把修改内容刷到硬盘实现见 src/mmkv.cj。 内存信息与统计接口速查接口返回值说明pageSize()Int64内存分页大小通常 4096containsKey(key)Bool判断 key 是否存在count()UInt64键值对总数totalSize()UInt64实例文件大小对齐磁盘块actualSize()UInt64实例实际使用大小getValueSize(key, actualSize)UInt64单个 key 值的大小消耗allKeys()HashSet获取所有 keymmapID()String获取实例 IDisFileValid(mmapID)Bool检测 MMKV 文件是否有效实现位于 src/mmkv.cj完整示例可参考 test/LLT/test_count.cj 与 test/LLT/test_allKeys.cj。⚠️isFileValid只用于校验文件有效性不要用它判断实例是否存在不存在的实例结果未知。 MMKV 备份与恢复接口用法支持按实例或全量备份/恢复全部为静态方法签名详见 doc/feature_api.md接口作用返回值backupOneToDirectory(mmapID, dstDir)备份单个实例BoolrestoreOneFromDirectory(mmapID, srcDir)恢复单个实例BoolbackupAllToDirectory(dstDir)备份全部实例成功个数restoreAllFromDirectory(srcDir)恢复全部实例成功个数备份恢复示例来自 test/DOC/testBackupAndRestore.cjvar backupDir /tmp/mmkv_backup MMKV.backupOneToDirectory(MyID, backupDir) MMKV.restoreOneFromDirectory(MyID, backupDir)每个接口均提供带rootPath的重载可指定自定义根路径实现见 src/mmkv.cj。 MMKV 日志等级设置与回调 Handler 注册通过 MMKVHandler 结构体注册回调可接管日志输出、CRC 校验失败、文件长度异常、多进程内容变更四类事件var handler MMKVHandler() handler.mmkvLog { level, file, line, function, message println(r-${level} ${file}:${line}:${function} ${message}) } handler.onMMKVCRCCheckFail { mmapID return OnErrorRecover } MMKV.registerHandler(handler)接口作用setLogLevel(level)单独调整日志等级registerHandler(handler)注册日志/异常/内容变更回调unregiserHandler()注销回调处理器完整示例见 test/DOC/testLog.cj接口实现见 src/mmkv.cj。 加密存储cryptKey / reKey / checkReSetCryptKey创建实例时传入cryptKey即可启用 AES 加密注意cryptKey 最长 16 字节超出部分被截断接口作用cryptKey()获取当前加密密钥reKey(cryptKey)重置密钥自动加解密已有数据checkReSetCryptKey(cryptKey)多进程场景下检查并同步新密钥实现见 src/mmkv.cj示例参考 test/DOC/testCryptkey.cj。⚙️ NativeBuffer高性能读取原生内存接口作用creatBuffer(size)创建 native 缓冲区writeValueToBuffer(key, buffer)按 key 读值并写入缓冲区返回写入大小destoryBuffer(buffer)必须手动销毁避免内存泄漏使用示例来自 test/DOC/testNativeBuffer.cjvar nbuff kv.creatBuffer(200) var size kv.writeValueToBuffer(set0, nbuff) kv.destoryBuffer(nbuff) // 用完必须销毁NativeBuffer结构体定义见 src/mmkv.cj。 MMKVException 异常捕获未初始化就创建实例、内存分配失败、模式参数非法等场景都会抛出 MMKVException推荐全局兜底try { var kv MMKV.mmkvWithID(test) } catch (e: MMKVException) { println(e) // MMKVException: You should Call MMKV.initializeMMKV() first. }常见异常触发点来自 src/mmkv.cj未先调用initializeMMKV()→ You should Call MMKV.initializeMMKV() first.实例创建失败native 返回 0→ Fail to create an MMKV instance日志等级或模式参数非法 → illegal value✅ 新手避坑清单先初始化再创建实例任何defaultMMKV/mmkvWithID调用前必须先initializeMMKVcryptKey 不超过 16 字节超长会被静默截断key 为空set返回falseget系列返回默认值删除后要trim()否则磁盘占用不减少NativeBuffer 用完必须destoryBufferisFileValid不能判断实例是否存在 相关文件与文档完整 API 文档含全部接口签名与示例doc/feature_api.mdMMKV 核心类实现src/mmkv.cj回调与常量定义src/mmkv_handler.cj异常类定义src/util.cj功能示例test/DOC/单元测试test/LLT/ 与 test/HLT/【免费下载链接】kv4cj一个轻量级的键值存储库项目地址: https://gitcode.com/Cangjie-TPC/kv4cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Java多智能体系统实战:用ADK构建旅游规划助手,让AI智能体协作完成任务_google adk java-CSDN博客 2026/9/25 7:58:32

Java多智能体系统实战:用ADK构建旅游规划助手,让AI智能体协作完成任务_google adk java-CSDN博客

首屏导读 本教程配套付费专栏: 大模型工程师修炼手记 19.9 元(AI 编程 / Agent 实战 | 本文同主题系统课程) AI时代程序员的自我提升 49.9 元(AI 时代成长方法论)。 单篇不过瘾?订阅解锁全量源…

阅读更多 →
幼儿园大班名胜古迹主题测评方案设计与实践 2026/9/25 7:58:32

幼儿园大班名胜古迹主题测评方案设计与实践

1. 项目背景与设计思路这个幼儿园大班上学期期末的中文测评项目,以《名胜古迹》为主题设计社会课程,是典型的幼教领域跨学科教学实践。我在参与多家幼儿园课程设计时发现,将语言能力测评与文化认知相结合,能有效提升5-6岁儿童的学…

阅读更多 →
如何安全删除死代码:Fallow trace 证据链 + fix 自动修复完整指南 2026/9/25 7:58:26

如何安全删除死代码:Fallow trace 证据链 + fix 自动修复完整指南

如何安全删除死代码:Fallow trace 证据链 fix 自动修复完整指南 【免费下载链接】fallow Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles: unused code, duplication, circular deps, complexity hotspots, archi…

阅读更多 →
WorkBuddy Enterprise企业级Agent平台:SkillHub与多Agent协同落地实践 2026/9/25 7:58:26

WorkBuddy Enterprise企业级Agent平台:SkillHub与多Agent协同落地实践

1. 从「超级个体」到「超级团队」:这个平台到底在解决什么问题第一次看到「WorkBuddy Enterprise」这个名字,我脑子里蹦出来的第一个念头是:腾讯云终于把 CodeBuddy 那套东西从个人开发者手里往团队场景搬了。如果你最近半年一直在关注 AI Ag…

阅读更多 →
PaddleSpeech 流式 ASR 服务客户端实战:从 WAV 文件模拟到麦克风实时识别 2026/9/25 7:58:26

PaddleSpeech 流式 ASR 服务客户端实战:从 WAV 文件模拟到麦克风实时识别

人工智能语音音频NLP媒体生成 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation …

阅读更多 →
Optimus产线级技术拆解:力控执行器与谐波减速器的硬核标准 2026/9/25 7:58:26

Optimus产线级技术拆解:力控执行器与谐波减速器的硬核标准

简介:本资源为2023年深度行业分析报告《特斯拉人形机器人Optimus发展优势及产业链梳理》,面向人工智能、机器人、智能硬件及产业研究领域的工程师、研究人员与投资分析人员,聚焦人形机器人技术路径、商业化潜力与国产供应链机会。报告系统拆解…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉