# MMKV **Repository Path**: gaojianming1081/MMKV ## Basic Information - **Project Name**: MMKV - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 36 - **Created**: 2022-03-24 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MMKVJS ## 介绍 一款小型键值对存储框架 - 支持存储number、boolean、string、Set类型数据存储 - 支持继承组件中SerializeBase.ets的class类对象的序列化反序列化 - 支持存储数据备份 - 支持存储数据恢复 - 支持系统dataStorage的API的存储数据转移存到mmkv存储文件中 ## 编译 1、DevEco Studio版本 >= 3.0.1.822;修改根目录build.gradle文件中的版本号: dependencies { classpath 'com.huawei.ohos:hap:3.0.6.4-native' classpath 'com.huawei.ohos:decctest:3.0.4.3' } 2、openharmony下native的sdk下载地址:http://ci.openharmony.cn/dailybuilds; 下载相应的形态组件ohos-sdk全量压缩包,选择windows中的native压缩包,解压到openharmony的native目录下,文件夹名字改为当前版本即可;版本 >= 3.1.5.2 3、RK3568的ROM下载地址:http://ci.openharmony.cn/dailybuilds; 选择开发板类型是rk3568,最好是2月28号之后的daily版本 4、API版本:8 ## 使用 ### 1、初始化:设置mmkv保存文件根目录(rootPath)和缓存目录(cachePath) MMKV.initialize(rootPath, cachePath) ### 2、实例化mmkv: let mmkv = MMKV.getBackedUpMMKVWithID(mmapID, MMKV.SINGLE_PROCESS_MODE, "Tencent MMKV", backupRootDir); ### 3、存取键值对数据: #### 3.1 常用数据类型:boolean、number、string、Set ##### 存数据示例: mmkv.encodeBool('abool', false) mmkv.encodeNumber('anumber', 3.0122) mmkv.encodeString('astring', 'dsfsg') let set1 = new Set() set1.add('ass1') mmkv.encodeSet('aSet', set1) ##### 取数据示例: mmkv.decodeBool('abool') mmkv.decodeNumber('astring') mmkv.decodeString('aNumber') mmkv.decodeSet('aSet') #### 3.2 类对象数据的序列化反序列化 类对象需要继承 SerializeBase类,需序列化属性需要标识注解@Serialize() 如: class MyClass extends SerializeBase{ @Serialize() public code: number = 0; public title: string = 'titles'; @Serialize() public description: string = 'descs'; } 存数据: let myClass1 = new MyClass(1, 't1', 'desc1') kv.encodeSerialize('serialize111', myClass1) 取数据: let myClass2 = kv.decodeSerialize('serialize111', new MyClass()) ### 4、读取系统轻量级dataStorage存储数据,转存到mmkv mmkv.dataStorageToMMKV(path) //path:dataStorage存储路径 ### 5、设置加密密钥 mmkv.reCryptKey('Key_seq_1') //Key_seq_1:加密密钥 ### 6、数据备份 备份otherDir路径mmapID的mmkv存储数据到backupRootDir MMKV.backupOneToDirectory(mmapID, backupRootDir, otherDir)//mmapID:需要备份的mmapID;backupRootDir:备份到目标路径;otherDir:待备份所在路径 备份全部mmkv存储数据到backupRootDir MMKV.backupAllToDirectory(backupRootDir) //backupRootDir:备份到目标路径 ### 7、数据恢复 从srcDir恢复mmkv存储数据 MMKV.restoreOneMMKVFromDirectory(mmapID, srcDir, otherDir)//mmapID:需要恢复的mmapID;srcDir:目标路径;otherDir:待备份所在路径 恢复srcDir路径下的全部mmkv存储数据 MMKV.restoreAllFromDirectory(srcDir) //srcDir: 目标路径 ### 8、清除所有存储数据 mmkv.clearAll()