Android Gradle 版本映射关系
AndroidStudio 中的 cmake 版本
AndroidStudio 默认使用 CMake 3.10.2 进行构建。如需设置 CMake 版本,可以在模块的 build.gradle 文件中使用 android.externalNativeBuild.cmake.version 属性指定相应的版本:
1 | android { |
也可以在项目的 local.properties 文件中配置 cmake.dir 值。
AndroidStudio 与 Android Gradle Plugin 版本关系
Android Studio version name | Android Studio version | Required plugin version |
---|---|---|
Ladybug Feature Drop | 2024.2.2 | 3.2-8.8 |
Ladybug | 2024.2.1 | 3.2-8.7 |
Koala Feature Drop | 2024.1.2 | 3.2-8.6 |
Koala | 2024.1.1 | 3.2-8.5 |
Jellyfish | 2023.3.1 | 3.2-8.4 |
Iguana | 2023.2.1 | 3.2-8.3 |
Hedgehog | 2023.1.1 | 3.2-8.2 |
Giraffe | 2022.3.1 | 3.2-8.1 |
Flamingo | 2022.2.1 | 3.2-8.0 |
Electric Eel | 2022.1.1 | 3.2-7.4 |
Dolphin | 2021.3.1 | 3.2-7.3 |
Chipmunk | 2021.2.1 | 3.2-7.2 |
Bumblebee | 2021.1.1 | 3.2-7.1 |
Arctic Fox | 2020.3.1 | 3.1-7.0 |
AGP(Android Gradle Plugin)与 Gradle、NDK、 JDK 版本关系
Gradle Plugin version | 最低 Gradle 版本 | 默认 NDK 版本 | 最低 JDK | 最低 SDK Build Tools |
---|---|---|---|---|
8.8 | 8.10.2 | 27.0.12077973 | 17 | 35.0.0 |
8.7 | 8.9 | 27.0.12077973 | 17 | 34.0.0 |
8.6 | 8.7 | 26.1.10909125 | 17 | 34.0.0 |
8.5 | 8.7 | 26.1.10909125 | 17 | 34.0.0 |
8.4 | 8.6 | 26.1.10909125 | 17 | 34.0.0 |
8.3 | 8.4 | 25.1.8937393 | 17 | 34.0.0 |
8.2 | 8.2 | 25.1.8937393 | 17 | 34.0.0 |
8.1 | 8.0 | 25.1.8937393 | 17 | 33.0.1 |
8.0 | 8.0 | 25.1.8937393 | 17 | 30.0.3 |
7.4 | 7.5 | 23.1.7779620 | 11 | 30.0.3 |
7.3 | 7.4 | 23.1.7779620 | 11 | 30.0.3 |
7.2 | 7.3.3 | 21.4.7075529 | 11 | 30.0.3 |
7.1 | 7.2 | 21.4.7075529 | 11 | 30.0.3 |
7.0 | 7.0 | 21.4.7075529 | 11 | 30.0.2 |
4.2.0 | 6.7.1 | 21.4.7075529 | NA | 30.0.2 |
4.1.0 | 6.5 | 21.1.6352462 | NA | 29.0.2 |
4.0.0 | 6.1.1 | 21.4.7075529 | NA | 29.0.2 |
3.6.0 | 5.6.4 | 20.0.5594570 | NA | 28.0.3 |
3.5.0 | 5.4.1 | 未指定 | NA | 28.0.3 |
3.4.0 | 5.1.1 | 未指定 | NA | 28.0.3 |
3.3.0 | 4.10.1 | 未指定 | NA | 28.0.3 |
3.2.0 | 4.6 | 未指定 | NA | 28.0.3 |
3.1.0 | 4.4 | 未指定 | NA | 27.0.3 |
3.0.0 | 4.1 | 未指定 | NA | 26.0.2 |
2.3.0 | 3.3 | 未指定 | NA | 25.0.0 |
2.2.0 | 2.14.1 | 未指定 | NA | 23.0.2 |
2.1.0 | 2.10 | 未指定 | NA | 23.0.2 |
2.0.0 | 2.10 | 未指定 | NA | 21.1.1 |
- JDK 11 支持最低 Gradle 版本为 5.0(AGP >= 3.4.x)
- JDK 17 支持最低 Gradle 版本为 7.3(AGP >= 7.2)
jdk 版本设置
在 Android Studio 设置里 build Tools -> Gradle 设置 JDK 版本。
ndk 版本设置
老版本中,可以在 local.properties 文件中配置 ndk.dir 值(已废弃)。最新版本中,需要在模块的 build.gradle 文件中使用 android.ndkVersion 属性指定相应的版本:
1 | android { |
BuildConfig 开关设置
- AGP 4.0 以上版本,android.buildFeatures.buildConfig 替代 android.packageBuildConfig 来控制生成 BuildConfig 类。
- AGP 4.0 及以下版本, 来配置。
1
2
3
4
5
6
7
8
9
10
11
12// AGP 4.0 以上版本
// 1. 在模块的 build.gradle 中添加以下配置,以关闭模块 BuildConfig 生成。
android {
buildFeatures {
buildConfig = false
}
}
// AGP 4.0 以下版本,在 build.gradle 中添加以下配置
android {
packageBuildConfig = false
}
NDK 特性变更
NDK 版本 | minSdkVersion | 重要更新 |
---|---|---|
26 | 21 | NA |
25 | 19 | NA |
24 | 19 | NA |
23 | 16 | NA |
22b | 16 | 默认链接器使用 LLD,ndk-gdb 默认使用 LLDB |
21e | 16 | 不再支持 32 位 Windows,删除旧版 toolchains |
20b | 16 | NA |
19c | 16 | 变更 toolchains 路径 |
18b | 16 | 删除 gcc、gnustl、stlport |
17c | 14 | 默认使用 libc++ |
16b | 14 | NA |
15c | 14 | NA |
14b | 9 | NA |
13b | 9 | 默认使用 clang |
12 | ? | 默认生成 build-id |
注意事项:
- build.gradle 文件中设置的 minSdkVersion 决定了在构建时可用的 API,也决定了代码兼容的最低操作系统版本。
- 最低 API 级别应该大于应用使用的 ndk 和使用的所有第三方库的最大 minSdkVersion。
- targetSdkVersion 可以改变原生代码的运行时行为。在运行时,可以通过调用 android_get_application_target_sdk_version() 来获取应用所使用的 targetSdkVersion。(API 24 以上)
Android 版本与 API 对照关系
Android 版本 | API level | Minimum JDK | Minimum AGP version |
---|---|---|---|
15 | 35 | 17 | 8.6.0 |
14 | 34 | 17 | 8.1.1 |
13 | 33 | 11 | 7.2 |
12 | 32、31 | 11 | NA |
11 | 30 | NA | NA |
10 | 29 | NA | NA |
9 | 28 | NA | NA |
8.1 | 27 | NA | NA |
8.0 | 26 | NA | NA |
7.1 | 25 | NA | NA |
7.0 | 24 | NA | NA |
6.0 | 23 | NA | NA |
5.1 | 22 | NA | NA |
5.0 | 21 | NA | NA |
4.4w | 20 | NA | NA |
4.4 | 19 | NA | NA |
4.3 | 18 | NA | NA |
4.2 | 17 | NA | NA |
4.1 | 16 | NA | NA |
4.0.3 | 15 | NA | NA |
4.0 | 14 | NA | NA |
- Android 12(api 31) 以上需要 jdk 11,不支持 jdk 8。
android.compileOptions.sourceCompatibility 属性决定了在编译 Java 源代码期间可用的 Java 语言功能。targetCompatibility 属性分别决定为编译的 Java 源代码生成字节码时使用的 Java 类格式版本。
(sourceCompatibility <= targetCompatibility <= 项目 JDK 版本)
1 | android { |
官方说明:
https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn&buildsystem=cmake
https://developer.android.com/studio/projects/install-ndk?hl=zh-cn
https://developer.android.com/ndk/guides/sdk-versions?hl=zh-cn
https://developer.android.com/tools/releases/platforms?hl=zh-cn