Android与Gradle之间的那些事

作者: 李玉凯 分类: Android 发布时间: 2019-04-28 03:53

前言:趁着辞职找工作的期间,来总结一下Android与Gradle之间的关联

首先我们要清楚Android gradle插件与Gradle是两种概念(划重点)

Gradle

是一种构建工具Gradle是一个开源的构建自动化工具,专注于灵活性和性能。Gradle构建脚本使用GroovyKotlin DSL 编写。(官网上抄写)

Gradle就是我们工程里gradle文件夹,如下图

我看可以看下gradle-wrapper.properties文件

1.distributionBasedistributionPath:指定解压后的gradle包位置。

2.zipStoreBasezipStorePath:指定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.14.6+28.0.3
3.3.0 – 3.3.24.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

    学习了

zhang进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注

+ 61 = 69