中文版本请参看这里
MMKV是微信应用中使用的高效、小型、易用的移动键值存储框架。目前可在Android 、 iOS/macOS 、 Windows 、 POSIX和HarmonyOS NEXT上使用。
高效的。 MMKV 使用 mmap 来保持内存与文件同步,并使用 protobuf 来编码/解码值,充分利用 Android 来实现最佳性能。
便于使用。您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需调用apply
。
小的。
将以下行添加到应用程序模块上的build.gradle
中:
dependencies {
implementation ' com.tencent:mmkv:2.0.1 '
// replace "2.0.1" with any available version
}
有关其他安装选项,请参阅 Android 设置。
您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需调用apply
。
在应用程序启动时设置 MMKV,假设您的Application
类,添加以下行:
public void onCreate () {
super . onCreate ();
String rootDir = MMKV . initialize ( this );
System . out . println ( "mmkv root: " + rootDir );
//……
}
MMKV有一个全局实例,可以直接使用:
import com . tencent . mmkv . MMKV ;
MMKV kv = MMKV . defaultMMKV ();
kv . encode ( "bool" , true );
boolean bValue = kv . decodeBool ( "bool" );
kv . encode ( "int" , Integer . MIN_VALUE );
int iValue = kv . decodeInt ( "int" );
kv . encode ( "string" , "Hello from mmkv" );
String str = kv . decodeString ( "string" );
MMKV 还支持多进程访问。完整的教程可以在这里找到 Android 教程。
写入 random int
1000 次,我们得到这个图表:
更多基准数据,请参考我们的基准测试。
高效的。 MMKV 使用 mmap 来保持内存与文件同步,并使用 protobuf 来编码/解码值,充分利用 iOS/macOS 来实现最佳性能。
便于使用。您可以随时使用 MMKV,无需任何配置。所有更改都会立即保存,无需synchronize
调用。
小的。
cd
到您的项目目录,运行pod repo update
以使 CocoaPods 知道最新的可用 MMKV 版本;pod 'MMKV'
添加到您的应用程序目标;pod install
;.xcworkspace
文件;#import <MMKV/MMKV.h>
添加到源文件中,我们就完成了。有关其他安装选项,请参阅 iOS/macOS 设置。
您可以随时使用 MMKV,无需任何配置。所有更改都会立即保存,无需synchronize
调用。在应用程序启动时设置 MMKV,在-[MyApp application: didFinishLaunchingWithOptions:]
中,添加以下行:
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
// init MMKV in the main thread
[MMKV initializeMMKV: nil ];
// ...
return YES ;
}
MMKV有一个全局实例,可以直接使用:
MMKV *mmkv = [MMKV defaultMMKV ];
[mmkv setBool: YES forKey: @" bool " ];
BOOL bValue = [mmkv getBoolForKey: @" bool " ];
[mmkv setInt32: - 1024 forKey: @" int32 " ];
int32_t iValue = [mmkv getInt32ForKey: @" int32 " ];
[mmkv setString: @" hello, mmkv " forKey: @" string " ];
NSString *str = [mmkv getStringForKey: @" string " ];
MMKV 还支持多进程访问。完整的教程可以在这里找到。
写入 random int
10000 次,我们得到这个图表:
更多基准数据,请参考我们的基准测试。
高效的。 MMKV 使用 mmap 来保持内存与文件同步,并使用 protobuf 来编码/解码值,充分利用 Windows 来实现最佳性能。
便于使用。您可以随时使用 MMKV。所有更改都会立即保存,无需save
,无需sync
调用。
小的。
从 git 存储库获取源代码:
git clone https://github.com/Tencent/MMKV.git
将Core/core.vcxproj
添加到您的解决方案中;
将MMKV
项目添加到您的项目的依赖项中;
将$(OutDir)include
添加到项目的C/C++
-> General
-> Additional Include Directories
;
将$(OutDir)
添加到项目的Linker
-> General
-> Additional Library Directories
;
将mmkv.lib
添加到项目的Linker
-> Input
-> Additional Dependencies
;
将#include <MMKV/MMKV.h>
添加到源文件中,我们就完成了。
笔记:
MT/MTd
运行时编译。如果您的项目使用MD/MDd
,您应该更改 MMKV 的设置以匹配您的项目( C/C++
-> Code Generation
-> Runtime Library
),反之亦然。Platform Toolset
。有关其他安装选项,请参阅 Windows 安装程序。
您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需调用save
。
在应用程序启动时设置 MMKV,例如在main()
中,添加以下行:
# include < MMKV/MMKV.h >
int main () {
std::wstring rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV有一个全局实例,可以直接使用:
auto mmkv = MMKV::defaultMMKV();
mmkv-> set ( true , " bool " );
std::cout << " bool = " << mmkv-> getBool ( " bool " ) << std::endl;
mmkv-> set ( 1024 , " int32 " );
std::cout << " int32 = " << mmkv-> getInt32 ( " int32 " ) << std::endl;
mmkv-> set ( " Hello, MMKV for Windows " , " string " );
std::string result;
mmkv-> getString ( " string " , result);
std::cout << " string = " << result << std::endl;
MMKV 还支持多进程访问。完整的教程可以在此处找到 Windows 教程。
高效的。 MMKV 使用 mmap 来保持内存与文件同步,并使用 protobuf 来编码/解码值,充分利用 POSIX 来实现最佳性能。
便于使用。您可以随时使用 MMKV。所有更改都会立即保存,无需save
,无需sync
调用。
小的。
从 git 存储库获取源代码:
git clone https://github.com/Tencent/MMKV.git
编辑您的CMakeLists.txt
,添加以下行:
add_subdirectory (mmkv/POSIX/src mmkv)
target_link_libraries (MyApp
mmkv)
将#include "MMKV.h"
添加到您的源文件中,我们就完成了。
有关其他安装选项,请参阅 POSIX 设置。
您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需调用save
。
在应用程序启动时设置 MMKV,例如在main()
中,添加以下行:
# include " MMKV.h "
int main () {
std::string rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV有一个全局实例,可以直接使用:
auto mmkv = MMKV::defaultMMKV();
mmkv-> set ( true , " bool " );
std::cout << " bool = " << mmkv-> getBool ( " bool " ) << std::endl;
mmkv-> set ( 1024 , " int32 " );
std::cout << " int32 = " << mmkv-> getInt32 ( " int32 " ) << std::endl;
mmkv-> set ( " Hello, MMKV for Windows " , " string " );
std::string result;
mmkv-> getString ( " string " , result);
std::cout << " string = " << result << std::endl;
MMKV 还支持多进程访问。完整的教程可以在这里找到 POSIX 教程。
高效的。 MMKV 使用 mmap 来保持内存与文件同步,并使用 protobuf 来编码/解码值,充分利用本机平台来实现最佳性能。
便于使用。您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需flush
调用。
小的。
ohpm install @tencent/mmkv
您可以随时使用 MMKV。所有更改都会立即保存,无需sync
,无需调用apply
。
在应用程序启动时设置 MMKV,假设您的EntryAbility.onCreate()
函数,添加以下行:
import { MMKV } from '@tencent/mmkv' ;
export default class EntryAbility extends UIAbility {
onCreate ( want : Want , launchParam : AbilityConstant . LaunchParam ) : void {
let appCtx = this . context . getApplicationContext ( ) ;
let mmkvRootDir = MMKV . initialize ( appCtx ) ;
console . info ( 'mmkv rootDir: ' , mmkvRootDir ) ;
……
}
MMKV有一个全局实例,可以直接使用:
import { MMKV } from '@tencent/mmkv' ;
let mmkv = MMKV . defaultMMKV ( ) ;
mmkv . encodeBool ( 'bool' , true ) ;
console . info ( 'bool = ' , mmkv . decodeBool ( 'bool' ) ) ;
mmkv . encodeInt32 ( 'int32' , Math . pow ( 2 , 31 ) - 1 ) ;
console . info ( 'max int32 = ' , mmkv . decodeInt32 ( 'int32' ) ) ;
mmkv . encodeInt64 ( 'int' , BigInt ( 2 ** 63 ) - BigInt ( 1 ) ) ;
console . info ( 'max int64 = ' , mmkv . decodeInt64 ( 'int' ) ) ;
let str : string = 'Hello OpenHarmony from MMKV' ;
mmkv . encodeString ( 'string' , str ) ;
console . info ( 'string = ' , mmkv . decodeString ( 'string' ) ) ;
let arrayBuffer : ArrayBuffer = StringToArrayBuffer ( 'Hello OpenHarmony from MMKV with bytes' ) ;
mmkv . encodeBytes ( 'bytes' , arrayBuffer ) ;
let bytes = mmkv . decodeBytes ( 'bytes' ) ;
console . info ( 'bytes = ' , ArrayBufferToString ( bytes ) ) ;
正如您所看到的,MMKV 非常易于使用。完整文档请参见 HarmonyOS NEXT 教程。
MMKV 是根据 BSD 3-Clause 许可证发布的。有关详细信息,请查看 LICENSE.TXT。
查看 CHANGELOG.md 了解更改历史记录的详细信息。
如果您有兴趣做出贡献,请查看 CONTRIBUTING.md,也可以加入我们的腾讯开源计划。
为了明确我们对会员的期望,MMKV 采用了广泛使用的贡献者契约定义的行为准则。我们认为它很好地表达了我们的价值观。如需了解更多信息,请查看行为准则。
首先查看常见问题解答。如果有任何问题,请随时提出问题。
用户隐私非常重视:MMKV 不会获取、收集或上传任何个人信息。详情请参阅MMKV SDK个人信息保护规则。