中文版本请参看这里
MMKV é uma estrutura de armazenamento de valor-chave móvel eficiente , pequena e fácil de usar , usada no aplicativo WeChat. Atualmente está disponível em Android , iOS/macOS , Windows , POSIX e HarmonyOS NEXT .
Eficiente . MMKV usa mmap para manter a memória sincronizada com arquivos e protobuf para codificar/decodificar valores, aproveitando ao máximo o Android para obter o melhor desempenho.
Fácil de usar . Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem necessidade sync
e apply
de chamadas.
Pequeno .
Adicione as seguintes linhas ao build.gradle
no módulo do seu aplicativo:
dependencies {
implementation ' com.tencent:mmkv:2.0.1 '
// replace "2.0.1" with any available version
}
Para outras opções de instalação, consulte Configuração do Android.
Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem necessidade sync
e apply
de chamadas.
Configure o MMKV na inicialização do aplicativo, diga sua classe Application
, adicione estas linhas:
public void onCreate () {
super . onCreate ();
String rootDir = MMKV . initialize ( this );
System . out . println ( "mmkv root: " + rootDir );
//……
}
MMKV possui uma instância global, que pode ser usada diretamente:
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 também suporta acesso multiprocesso . Tutoriais completos podem ser encontrados aqui Tutorial do Android.
Escrevendo random int
1000 vezes, obtemos este gráfico:
Para obter mais dados de benchmark, consulte nosso benchmark.
Eficiente . MMKV usa mmap para manter a memória sincronizada com arquivos e protobuf para codificar/decodificar valores, aproveitando ao máximo o iOS/macOS para obter o melhor desempenho.
Fácil de usar . Você pode usar o MMKV à medida que avança, nenhuma configuração é necessária. Todas as alterações são salvas imediatamente, nenhuma chamada synchronize
é necessária.
Pequeno .
cd
no diretório do seu projeto, execute pod repo update
para alertar o CocoaPods sobre as versões mais recentes do MMKV disponíveis;pod 'MMKV'
ao destino do seu aplicativo;pod install
;.xcworkspace
gerado pelo CocoaPods;#import <MMKV/MMKV.h>
ao seu arquivo de origem e pronto.Para outras opções de instalação, consulte Configuração do iOS/macOS.
Você pode usar o MMKV à medida que avança, nenhuma configuração é necessária. Todas as alterações são salvas imediatamente, nenhuma chamada synchronize
é necessária. Configure o MMKV na inicialização do aplicativo, em seu -[MyApp application: didFinishLaunchingWithOptions:]
, adicione estas linhas:
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
// init MMKV in the main thread
[MMKV initializeMMKV: nil ];
// ...
return YES ;
}
MMKV possui uma instância global, que pode ser usada diretamente:
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 também suporta acesso multiprocesso . Tutoriais completos podem ser encontrados aqui.
Escrevendo random int
10.000 vezes, obtemos este gráfico:
Para obter mais dados de benchmark, consulte nosso benchmark.
Eficiente . MMKV usa mmap para manter a memória sincronizada com arquivos e protobuf para codificar/decodificar valores, aproveitando ao máximo o Windows para obter o melhor desempenho.
Fácil de usar . Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem necessidade save
ou sync
chamadas.
Pequeno .
Obtendo o código-fonte do repositório git:
git clone https://github.com/Tencent/MMKV.git
Adicione Core/core.vcxproj
à sua solução;
Adicione o projeto MMKV
às dependências do seu projeto;
Adicione $(OutDir)include
ao C/C++
-> General
-> Additional Include Directories
do seu projeto;
Adicione $(OutDir)
ao Linker
-> General
-> Additional Library Directories
do seu projeto;
Adicione mmkv.lib
ao Linker
-> Input
-> Additional Dependencies
do seu projeto;
Adicione #include <MMKV/MMKV.h>
ao seu arquivo de origem e pronto.
observação:
MT/MTd
por padrão. Se o seu projeto usa MD/MDd
, você deve alterar a configuração do MMKV para corresponder à do seu projeto ( C/C++
-> Code Generation
-> Runtime Library
) ou vice-versa.Platform Toolset
se você usar uma versão diferente do Visual Studio.Para outras opções de instalação, consulte Configuração do Windows.
Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem sync
, sem necessidade save
chamadas.
Configure o MMKV na inicialização do aplicativo, digamos em main()
, adicione estas linhas:
# include < MMKV/MMKV.h >
int main () {
std::wstring rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV possui uma instância global, que pode ser usada diretamente:
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 também suporta acesso multiprocesso . Tutoriais completos podem ser encontrados aqui Tutorial do Windows.
Eficiente . MMKV usa mmap para manter a memória sincronizada com arquivos e protobuf para codificar/decodificar valores, aproveitando ao máximo o POSIX para obter o melhor desempenho.
Fácil de usar . Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem necessidade save
ou sync
chamadas.
Pequeno .
Obtendo o código-fonte do repositório git:
git clone https://github.com/Tencent/MMKV.git
Edite seu CMakeLists.txt
, adicione essas linhas:
add_subdirectory (mmkv/POSIX/src mmkv)
target_link_libraries (MyApp
mmkv)
Adicione #include "MMKV.h"
ao seu arquivo de origem e pronto.
Para outras opções de instalação, consulte Configuração POSIX.
Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem sync
, sem necessidade save
chamadas.
Configure o MMKV na inicialização do aplicativo, digamos em main()
, adicione estas linhas:
# include " MMKV.h "
int main () {
std::string rootDir = getYourAppDocumentDir ();
MMKV::initializeMMKV (rootDir);
// ...
}
MMKV possui uma instância global, que pode ser usada diretamente:
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 também suporta acesso multiprocesso . Tutoriais completos podem ser encontrados aqui Tutorial POSIX.
Eficiente . MMKV usa mmap para manter a memória sincronizada com o arquivo e protobuf para codificar/decodificar valores, aproveitando ao máximo a plataforma nativa para obter melhor desempenho.
Fácil de usar . Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem sync
e sem necessidade de chamadas flush
.
Pequeno .
ohpm install @tencent/mmkv
Você pode usar o MMKV conforme avança. Todas as alterações são salvas imediatamente, sem necessidade sync
e apply
de chamadas.
Configure o MMKV na inicialização do aplicativo, digamos sua função EntryAbility.onCreate()
, adicione estas linhas:
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 possui uma instância global, que pode ser usada diretamente:
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 ) ) ;
Como você pode ver, o MMKV é bastante fácil de usar. Para obter a documentação completa, consulte Tutorial do HarmonyOS NEXT.
MMKV é publicado sob a licença BSD de 3 cláusulas. Para obter detalhes, consulte LICENSE.TXT.
Confira o CHANGELOG.md para obter detalhes do histórico de alterações.
Se você estiver interessado em contribuir, confira CONTRIBUTING.md, junte-se também ao nosso Tencent OpenSource Plan.
Para esclarecer o que se espera de nossos membros, a MMKV adotou o código de conduta definido pelo Pacto do Contribuidor, que é amplamente utilizado. E achamos que articula bem nossos valores. Para mais informações, confira o Código de Conduta.
Confira o FAQ primeiro. Caso haja alguma dúvida, não hesite em criar problemas.
A privacidade do usuário é levada muito a sério: a MMKV não obtém, coleta ou carrega nenhuma informação pessoal. Consulte as Regras de proteção de informações pessoais do SDK do MMKV para obter detalhes.