-
-
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(推荐)
-
在 App 模块的
build.gradle
文件里添加:dependencies { implementation 'com.tencent:mmkv-static:1.2.4' // replace "1.2.4" with any available version }
Gradle 在编译工程的时候会自动从 maven 仓库下载 AAR 包。
-
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
-
下载预先编译好的 AAR 包;
-
在 Android Studio 里点击
File -> New -> New Module...
菜单并选择"Import JAR/AAR Package"
; -
在 Android Studio 里点击
File -> Project Structure...
菜单, 或者编辑 App 模块的build.gradle
文件,添加 MMKV 依赖:dependencies { implementation project(':mmkv') }
-
-
通过编译源码
-
获取 MMKV 源码:
git clone https://github.com/Tencent/MMKV.git cd mmkv
-
下载安装 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'
-
用 Android Studio 打开项目目录
Android/MMKV
即可编译 MMKV,你也可以从命令行编译:cd Android/MMKV ./gradlew build
注: 如果你确定不需要加密功能,你可以在
Core/MMKVPredef.h
文件中打开宏MMKV_DISABLE_CRYPT
,以减小一些二进制大小。 -
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