-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
android_setup_cn
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Windows / POSIX 平台,一并开源。
- MMKV 支持 API level 23 及以上平台;如需支持 API level 21~22, 请使用 v1.3.x LTS 版本。
- MMKV 支持 ARM64 架构;如需支持 32-bit 架构,请使用 v1.3.x LTS 版本。
- MMKV 需使用 NDK r26d 或以上进行编译 (通过源码引入 MMKV 的话)
-
通过 Maven(推荐)
从 v1.2.8 起, MMKV 迁移到 Maven Central。老版本 (<= v1.2.7) 仍然在 JCenter。
从 v2.0.0 起, MMKV 去掉了 32-bit 架构的支持、API level 22 以下的支持, 如有这类需求,请使用 v1.3.x LTS 版本。-
在 App 模块的
build.gradle
文件里添加:dependencies { implementation 'com.tencent:mmkv:2.0.1' // replace "2.0.1" with any available version }
Gradle 在编译工程的时候会自动从 maven 仓库下载 AAR 包。
-
MMKV 默认以静态库形式链接 libc++。这个库如果动态链接,会额外占用 2MB 空间(解压后)。如果你已经有其他库引入了
libc++_shared.so
,并且你确保他们的库没有版本兼容问题,你可以使用动态链接 libc++ 的 MMKV,以进一步减少安装包大小:dependencies { implementation 'com.tencent:mmkv-shared:2.0.1' // replace "2.0.1" with any available version }
-
-
通过编译源码
从 v1.2.9 起,MMKV 不再官方支持 armeabi 架构,另外从 v2.0 开始(以及 v1.3.5~v1.3.6)armv7 和 API 22 及以下也不再支持。如果你需要支持 armeabi 或 armv7 或 API 22 及以下,你可以源码编译。-
获取 MMKV 源码:
git clone https://github.com/Tencent/MMKV.git cd mmkv
-
通过 Android Studio 的 SDK Manager 安装最新的 NDK。
注意:从 NDK r17 开始, Android 官方不再支持ARMv5 (armeabi)
架构。如果你的 App 还需要支持 armeabi,那么你需要安装 NDK r16b 来编译 MMKV。并且需要从文件Android/MMKV/mmkv/build.gradle
里反注释这两行:// uncomment this line to support armv7, add 'armeabi' to support armeabi // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' ... // uncomment this line to support armeabi by using android-ndk-r16b // ndkVersion = '16.1.4479499'
如果需要支持更低版本的 API,需要改根目录下的
build.gradle
里的minSdkVersion
选项。ext { minSdkVersion = 21 // change this to whatever you like .... }
-
用 Android Studio 打开目录
Android/MMKV
,选择 'MMKV:mmkv [buildAndPublishToLocalMaven]' gradle 任务,点击“运行”按钮开始编译。如无异常结果会放到这个目录:$HOME/.m2/repository/com/tencent/mmkv/$version
。可以在你 App 的 build.gradle 加上以下几行进行验证:repositories { mavenLocal() .... }
-
如果你确定不需要加密功能,你可以在
Core/MMKVPredef.h
文件中打开宏MMKV_DISABLE_CRYPT
,以减小一些二进制大小。 -
如果你确定不需要 MMKV for Flutter 功能,你可以在
Core/MMKVPredef.h
文件中打开宏MMKV_DISABLE_FLUTTER
,以减小一些二进制大小。
-
MMKV is published under the BSD 3-Clause license. For details check out the LICENSE.TXT.
Check out the CHANGELOG.md for details of change history.
If you are interested in contributing, check out the CONTRIBUTING.md, also join our Tencent OpenSource Plan.
To give clarity of what is expected of our members, MMKV has adopted the code of conduct defined by the Contributor Covenant, which is widely used. And we think it articulates our values well. For more, check out the Code of Conduct.
Check out the FAQ first. Should there be any questions, don't hesitate to create issues.
User privacy is taken very seriously: MMKV does not obtain, collect or upload any personal information. Please refer to the MMKV SDK Personal Information Protection Rules for details.
- In English
- 中文
- In English
- 中文
- In English
- 中文
-
In English
-
中文
-
Golang