MMKVWatchExtension 1.3.9

MMKVWatchExtension 1.3.9

lingol 维护。



  • guoling

license PRs Welcome Release Version Platform

中文版本请参看这里

MMKV 是一个 高效小型易于使用 的移动端键值存储框架,用于微信应用中。目前支持 AndroidiOS/macOSWin32POSIX

MMKV for Android

特点

  • 高效。MMKV 使用 mmap 将内存与文件同步,使用 protobuf 来编码/解码值,在 Android 上充分发挥性能。

    • 多进程并发:MMKV 支持进程之间的读读和读写并发访问。
  • 易于使用。您可以直接开始使用 MMKV。所有更改都会立即保存,无需 sync、无需 apply 调用。

  • 小巧.

    • 少量文件:MMKV 包含进程锁、编码/解码辅助程序和 mmap 逻辑,没有其他内容。真正整洁。
    • 约 50K 的二进制大小:MMKV 为每个架构在应用大小增加约 50K,当压缩后(APK)则更少。

入门指南

Maven方式安装

将以下行添加到您的应用模块中的build.gradle文件

dependencies {
    implementation 'com.tencent:mmkv:1.3.0'
    // replace "1.3.0" with any available version
}

有关其他安装选项,请参阅Android安装说明

快速入门教程

您可以边用边学MMKV。所有更改都会立即保存,无需syncapply调用。
在应用启动时设置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教程中找到。

性能

随机写入int 1000次,得到以下图表

有关更多基准数据,请参阅我们的基准

MMKV for iOS/macOS

特性

  • 高效。MMKV 使用 mmap 来保持内存与文件的同步,并使用 protobuf 对值进行编解码,充分利用 iOS/macOS 的性能优势。

  • 易于使用。您可以像使用其他功能一样使用 MMKV,无需进行任何配置。所有更改都会立即保存,无需进行 synchronize 调用。

  • 小巧.

    • 文件数量少:MMKV 包含编解码辅助工具和 mmap 逻辑,以及更多内容。它非常整洁。
    • 二进制大小小于 30K:MMKV 在应用大小上每个架构添加的额外大小不超过 30K,在压缩(IPA)时则更小。

入门

通过 CocoaPods 安装

  1. 安装 CocoaPods
  2. 在终端中,执行 cd 命令到您的项目目录,运行 pod repo update 命令使 CocoaPods 了解最新的可用 MMKV 版本;
  3. 编辑您的 Podfile,将 pod 'MMKV' 添加到您的应用目标;
  4. 运行 pod install
  5. 打开 CocoaPods 生成的 .xcworkspace 文件;
  6. #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也支持多进程访问。完整的教程可以在这里找到:这里

性能

随机写入10000次的int,我们得到了以下图表

有关更多基准数据,请参阅我们的基准

MMKV for Win32

特性

  • 强效。MMKV使用mmap将内存与文件同步,并使用protobuf进行编码/解码值,充分利用Windows以获得最佳性能。

    • 多进程并发:MMKV 支持进程之间的读读和读写并发访问。
  • 易用。您可以随时使用MMKV。所有更改都将立即保存,无需执行save,无需调用sync

  • 小巧.

    • 少量文件:MMKV 包含进程锁、编码/解码辅助程序和 mmap 逻辑,没有其他内容。真正整洁。
    • 二进制大小约10K:MMKV在应用程序大小上增加约10K,在压缩后的空间要小得多。

入门指南

通过源码安装

  1. 从Git仓库获取源代码

    git clone https://github.com/Tencent/MMKV.git
    
  2. Win32/MMKV/MMKV.vcxproj 添加到你的解决方案;

  3. MMKV 项目添加到项目的依赖项;

  4. $(OutDir)include 添加到项目的 C/C++ -> General -> Additional Include Directories

  5. $(OutDir) 添加到项目的 Linker -> General -> Additional Library Directories

  6. MMKV.lib 添加到项目的 Linker -> Input -> Additional Dependencies

  7. #include <MMKV/MMKV.h> 添加到你的源文件中,任务完成。

注意

  1. MMKV 默认使用 MT/MTd 运行时进行编译。如果你的项目使用 MD/MDd,你应该将 MMKV 的设置更改为与项目匹配(在 C/C++ -> Code Generation -> Runtime Library 中),反之亦然。
  2. MMKV 使用 Visual Studio 2017 进行开发,如果使用不同版本的 Visual Studio,请更改 Platform Toolset

有关其他安装选项,请参阅 Win32 安装

快速教程

您可以像使用 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 Win32", "string");
std::string result;
mmkv->getString("string", result);
std::cout << "string = " << result << std::endl;

MMKV 还支持 多进程访问。完整的教程可在 Win32 教程 中找到。

MMKV for POSIX

功能

  • 高效。MMKV使用mmap将内存与文件同步,并使用protobuf进行值的编解码,充分利用POSIX以实现最佳性能。

    • 多进程并发:MMKV 支持进程之间的读读和读写并发访问。
  • 易用。您可以随时使用MMKV。所有更改都将立即保存,无需执行save,无需调用sync

  • 小巧.

    • 少量文件:MMKV 包含进程锁、编码/解码辅助程序和 mmap 逻辑,没有其他内容。真正整洁。
    • 二进制大小约为7K:MMKV在应用程序大小上增加约7K,而在压缩后则更小。

入门指南

CMake安装

  1. 从git仓库获取源代码

    git clone https://github.com/Tencent/MMKV.git
    
  2. 编辑你的CMakeLists.txt,添加以下行

    add_subdirectory(mmkv/POSIX/src mmkv)
    target_link_libraries(MyApp
        mmkv)
  3. #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 Win32", "string");
std::string result;
mmkv->getString("string", result);
std::cout << "string = " << result << std::endl;

MMKV还支持多进程访问。可以在这里找到完整的教程:POSIX教程.

许可证

MMKV 采用 BSD 3-Clause 许可证发布。有关详细信息,请查看 LICENSE.TXT

变更日志

有关变更历史详情,请查看 CHANGELOG.md

贡献力量

如果您有兴趣贡献力量,请查看 CONTRIBUTING.md,并加入我们的 腾讯开源计划

为了明确对成员的期望,MMKV 采用由贡献者公约定义的行为准则,这是广泛使用的。我们认为这很好地阐述了我们的价值观。更多详情请查看 行为准则

常见问题 & 反馈

首先查看 常见问题。如果有任何问题,请毫不犹豫地创建 问题报告

个人信息保护规则

用户隐私受到高度重视:MMKV 不会获取、收集或上传任何个人资料。有关详情,请参阅 MMKV SDK 个人信息保护规则