Skip to content

android_setup_cn

guoling edited this page Oct 26, 2020 · 30 revisions

MMKV for Android

MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。

Android 安装指南

基本要求

  • MMKV 支持 API level 16 以上平台;
  • MMKV 需使用 NDK r16b 或以下进行编译 (通过源码引入 MMKV 的话)

安装引入

  • 通过 Maven(推荐)

    1. 在 App 模块的 build.gradle 文件里添加:

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

      Gradle 在编译工程的时候会自动从 maven 仓库下载 AAR 包。

    2. MMKV 默认以静态库形式链接 libc++。这个库如果动态链接,会额外占用 2MB 空间(解压后)。如果你已经有其他库引入了 libc++_shared.so,并且你确保他们的库没有版本兼容问题,你可以使用动态链接 libc++ 的 MMKV,以进一步减少安装包大小:

    dependencies {
        implementation 'com.tencent:mmkv:1.2.4'
        // replace "1.2.4" with any available version
    }
  • 通过预先编译好的 AAR Package

    1. 下载预先编译好的 AAR 包;

    2. 在 Android Studio 里点击 File -> New -> New Module... 菜单并选择 "Import JAR/AAR Package"

    3. 在 Android Studio 里点击 File -> Project Structure... 菜单, 或者编辑 App 模块的 build.gradle 文件,添加 MMKV 依赖:

      dependencies {
          implementation project(':mmkv')
      }
  • 通过编译源码

    1. 获取 MMKV 源码:

      git clone https://github.com/Tencent/MMKV.git
      cd mmkv
      
    2. 下载安装 Android NDK r16b. 如果 Gradle 找不到 SDK 或 NDK,你需要在 Android/MMKV/ 目录创建文件 local.properties,输入以下内容:

      sdk.dir=path/to/sdk
      ndk.dir=path/to/ndk
      

      注意:从 NDK r17 开始, Android 官方不再支持 ARMv5 (armeabi) 架构。如果你的 App 确定不需要支持这个架构,那么你可以使用最新的 NDK 编译 MMKV。只需要从文件 Android/MMKV/mmkv/build.gradle 里删掉这一行即可:

      abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    3. 用 Android Studio 打开项目目录 Android/MMKV 即可编译 MMKV,你也可以从命令行编译:

      cd Android/MMKV
      ./gradlew build
      

    注: 如果你确定不需要加密功能,你可以在Core/MMKVPredef.h 文件中打开宏MMKV_DISABLE_CRYPT,以减小一些二进制大小。

下一步

Clone this wiki locally