-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
android_setup_cn
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。
- MMKV 支持 API level 16 以上平台;
- MMKV 需使用 NDK r16b 或以上进行编译 (通过源码引入 MMKV 的话)
-
通过 Maven(推荐)
从 v1.2.8 起, MMKV 迁移到 Maven Central。老版本 (<= v1.2.7) 仍然在 JCenter。
-
在 App 模块的
build.gradle
文件里添加:dependencies { implementation 'com.tencent:mmkv:1.3.3' // replace "1.3.3" with any available version }
Gradle 在编译工程的时候会自动从 maven 仓库下载 AAR 包。
-
MMKV 默认以静态库形式链接 libc++。这个库如果动态链接,会额外占用 2MB 空间(解压后)。如果你已经有其他库引入了
libc++_shared.so
,并且你确保他们的库没有版本兼容问题,你可以使用动态链接 libc++ 的 MMKV,以进一步减少安装包大小:dependencies { implementation 'com.tencent:mmkv-shared:1.3.3' // replace "1.3.3" with any available version }
-
-
通过编译源码
从 v1.2.9 起,MMKV 不再官方支持 armeabi 架构。如果你需要支持 armeabi,你可以源码编译。-
获取 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 armeabi // abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' ... // uncomment this line to support armeabi by using android-ndk-r16b // ndkVersion = '16.1.4479499'
-
用 Android Studio 打开项目目录
Android/MMKV
即可编译 MMKV,你也可以从命令行编译:cd Android/MMKV ./gradlew build
-
如果你确定不需要加密功能,你可以在
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