Android与Gradle之间的那些事
前言:趁着辞职找工作的期间,来总结一下Android与Gradle之间的关联
首先我们要清楚Android gradle插件与Gradle是两种概念(划重点)。
Gradle
是一种构建工具Gradle是一个开源的构建自动化工具,专注于灵活性和性能。Gradle构建脚本使用Groovy或Kotlin DSL 编写。(官网上抄写)
Gradle就是我们工程里gradle文件夹,如下图
我看可以看下gradle-wrapper.properties文件
1.distributionBase
和distributionPath
:指定解压后的gradle包位置。
2.zipStoreBase
和zipStorePath
:指定gradle zip包位置。
3.其中GRADLE_USER_HOME
路径代表
mac:/Users/{user}/.gradle windows:C:\Users\{user}\.gradle linux:/home/{user}/.gradle
4.其中wrapper/dists
代表GRADLE_USER_HOME
下的子文件夹
5.distributionUrl
:指定使用哪个版本gradle编译项目,如上图就是说编译项目时用我使用的是4.10.1 版本,当编译时就会从本地去找,如果本地没有就会从网上下载。(ps:如果没有梯子的话巨慢)
Android gradle插件
Android gradle插件是针对Gradle发行版和Android SDK Build Tools封装的一个工具,主要有两大功能:
1. 调用Gradle本身的代码和批处理工具来构建项目
2. 调用Android SDK的编译、打包功能
接下来我们看一下项目根目录的build.gradle
classpath
:代表当前Android gradle插件的版本号
Android Studio只是一个开发工具而已,因为Android Studio想使用gradle这个工具,那么它也需要有相应的插件来关联上gradle,所以说这个版本号就是Android gradle插件的版本号。
我们也可以打开 项目右键-> Open Module Settings中看到一个是Gradle的版本号和Android gradle插件的版本号。
同时也可以从官网了解更多的信息
https://developer.android.com/studio/releases/gradle-plugin.html#revisions
Gradle发行版本、Gradle插件版本以及Android SDK Build Tools版本之间的关系如下表格:
Gradle插件版本 | Gradle发行版 | Android SDK 构建工具版本 |
3.0.0+ | 4.1+ | 26.0.2+ |
3.1.0+ | 4.4+ | 27.0.3 |
3.2.0 – 3.2.1 | 4.6+ | 28.0.3 |
3.3.0 – 3.3.2 | 4.10.1+ | 28.0.3 |
3.4.0+ | 5.1.1+ | 28.0.3 |
其中在Android SDK 26.0.2+之后不再需要为构建工具指定版本 – 插件默认使用最低要求的版本。app->build.gradle文件中可以删除该android.buildToolsVersion属性。
补充
虽然buildeToolVersion
已经可以不用写了,但是要明白他的意思。buildeToolVersion
是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于sdk路径/build-tools/x.x.x。可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为28,去构建一个sdk版本为26的。所以说只要buildeToolVersion高于compileSdkVersion就可以了。
Android gradle插件版本是跟随Android Studio版本变化的,所以我们每次更新Android Studio时都会建议你更新Android gradle插件,但是一般不更新也可以正常使用,只是一些插件的新功能有可能无法使用。
zhang
2019年5月6日 下午2:43
学习了