中文版本請參看這裡
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個人資訊保護規則。