中文版本请参看这里
MMKV — это эффективная , небольшая и простая в использовании мобильная система хранения ключей и значений, используемая в приложении WeChat. В настоящее время он доступен на 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 Tutorial.
Записав случайное int
1000 раз, мы получим такую диаграмму:
Дополнительные данные можно найти в нашем тесте.
Эффективный . MMKV использует mmap для синхронизации памяти с файлами и protobuf для кодирования/декодирования значений, максимально используя возможности iOS/macOS для достижения наилучшей производительности.
Простой в использовании . Вы можете использовать MMKV по ходу дела, никаких настроек не требуется. Все изменения сохраняются сразу, никаких вызовов synchronize
не требуется.
Маленький .
cd
в каталог вашего проекта, запустите pod repo update
, чтобы CocoaPods узнал о последних доступных версиях MMKV;pod 'MMKV'
в цель вашего приложения;pod install
;.xcworkspace
созданный CocoaPods;#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 также поддерживает многопроцессный доступ . Полные руководства можно найти здесь.
Записав случайное 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
, если вы используете другую версию Visual Studio.Другие варианты установки см. в разделе Настройка 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 Tutorial.
Эффективный . 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, а также присоединяйтесь к нашему плану Tencent OpenSource.
Чтобы внести ясность в то, что ожидается от наших членов, MMKV принял кодекс поведения, определенный Соглашением участников, который широко используется. И мы считаем, что это хорошо отражает наши ценности. Более подробную информацию можно найти в Кодексе поведения.
Сначала ознакомьтесь с FAQ. Если возникнут какие-либо вопросы, не стесняйтесь создавать проблемы.
К конфиденциальности пользователей относятся очень серьезно: MMKV не получает, не собирает и не загружает какую-либо личную информацию. Подробную информацию см. в Правилах защиты личной информации MMKV SDK.