Android Gradle配置详解一:gradle插件和gradle区别

首先要知道gradle插件版本和gradle是什么以及对应关系。概念可能不清楚,但我们却时时刻刻和他们打交道。

gradle:对应gradle-wrapper.properties中的distributionUrl=https/://services.gradle.org/distributions/gradle-X.X-all.zip

一个构建系统,构建项目的工具,用来编译Android app,能够简化你的编译、打包、测试过程。也就是把那一个个文件、文件夹按照一定的规则关联起来,形成一个项目的工具,它其实不仅仅是用在AndroidStudio上。在AS第一次创建项目会自动下载 Gradle,这个过程很漫长(100多M),但是第一次之后就ok了。

维基百科是这样解释的:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

构建工具就是对你的项目进行编译、运行、签名、打包、依赖管理等一系列功能的合集,那如何理解构建工具?
我们以前用 Eclipse开发Android程序,而Eclipse最初是用来做Java 开发的,Googl为了能在 Eclipse 上进行Android 开发,开发了ADT 插件(Android Developer Tools),正是因为有了 ADT ,我们才可以在 Eclipse 上进行编译、运行、签名、打包等一系列流程。而这背后的工作都是 ADT 的功劳,ADT 就是我们的构建工具。    

一般来说,构建工具除了以上提到的编译、运行、签名、打包等,还具备依赖 管理的功能,什么是依赖管理呢?我们以前在 Eclipse 上开发 Android 引用第三方库,一般都是先下载 jar 文件,然后把 jar 文件添加到 libs 目录。但假设第三方库有更新,需要下载最新的 Jar 文件替换掉原来的,非常繁琐,可以说这种方式只有依赖,而没有管理。    

Gradle 引用第三方库方式是这样的:    compile 'com.android.support:support-v4:24.0.1'    
我们直接可以看到源地址,升级的话直接改下版本号就可以了,这就是所谓的依赖管理。

传统的构建工具有 Make、Ant、Maven、Ivy等,而 Gradle 是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关,官方网站:https://gradle.org/ 
 类似 Ant、Maven这类构建工具都是基于 xml 来进行描述的,很臃肿,而 Gradle 采用的是一种叫做 Groovy 的语言,语法跟 Java 语法很像,但是是一种动态语言,而且在 Java 基础上做了不少改进,用起来更加简洁、灵活,而且 Gradle 完全兼容 Maven、Ivy,这点基本上宣布了 Maven、Ivy 可以被抛弃了,Gradle 的推出主要以 Java 应用为主,当然目前还支持 Android、C、C++。

Gradle 跟 Android Studio 其实没有关系,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 开发了一个 AS 的插件叫 Android Gradle Plugin  ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。在项目的根目录有个 build.gradle 文件,里面有这么一句代码:       
classpath 'com.android.tools.build:gradle:2.1.2' 

这个就是依赖 gradle 插件的代码,后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。关于 android gradle plugin 的更多信息可以到这里查看,这里列举了 android gradle plugin 每个版本的具体变化与具体功能:http://tools.android.com/tech-docs/new-build-system  

Gradle插件:对应build.gradle中依赖的classpath 'com.android.tools.build:gradle:2.1.2',可也通过“File > Project Structure > Project > Android Gradle plugin”来指定Gradle插件版本

我们在AS中用到的Gradle其实应该被叫做Android Plugin for Gradle,它本质就是一个AS的插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,一边调用Android SDK的编译、打包功能,从而让我们能够顺畅地在AS上进行开发。
Gradle插件跟 Android SDK BuildTool有关联,因为它还承接着AndroidStudio里的编译相关的功能,这也是我们要在项目的 local.properties 文件里写明Android SDK路径、在build.gradle 里注明 buildToolsVersion 的原因。
Gradle插件是独立于Android Studio运行的,所以它的更新也是与Android Studio分开的。Gradle插件会有版本号,每个版本号又对应有一个或一些 Gradle发行版本(一般是限定一个最低版本),也就是我们常见的类似gradle-3.1-all.zip这种东西;

如果这两个版本对应不上了,那你的工程构建的时候就会报错。
对应关系如下:Gradle插件版本与Gradle版本对应关系

插件版本

所需的 Gradle 版本
1.0.0 - 1.1.32.2.1 - 2.3
1.2.0 - 1.3.12.2.1 - 2.9
1.5.02.2.1 - 2.13
2.0.0 - 2.1.22.10 - 2.13
2.1.3 - 2.2.32.14.1 - 3.5
2.3.0+3.3+
3.0.0+4.1+
3.1.0+4.4+
3.2.0 - 3.2.14.6+
3.3.0 - 3.3.34.10.1+
3.4.0 - 3.4.35.1.1+
3.5.0 - 3.5.45.4.1+
3.6.0 - 3.6.45.6.4+
4.0.0+6.1.1+
4.1.0+6.5+
4.2.0+6.7.1+
7.07.0+
7.17.2+
7.27.3.3+

参考

(17条消息) Android Studio之Gradle和Gradle插件的区别_LVXIANGAN的博客-CSDN博客icon-default.png?t=M5H6https://blog.csdn.net/lvxiangan/article/details/84869770Android Gradle 插件版本说明_锐湃的博客-CSDN博客_android gradle插件版本Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可独立于 Android Studio 运行并单独更新。本页将介绍如何让 Gradle 工具保持最新状态,以及最近的更新包含哪些内容。如需了解即将针对 Android Gradle 插件进行的重大变更,请参阅Andro.https://blog.csdn.net/chuyouyinghe/article/details/122476237[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_米歪(MiWi)的博客-CSDN博客_android gradle plugin versionAndroid Gradle 插件版本说明在更新 Android Studio 时,您可能会收到一并将 Gradle更新为最新可用版本的提示。您可以选择接受该更新,也可以根据项目的构建要求手动指定版本。下表列出了各个 Android Gradle 插件版本所需的 Gradle 版本。为了获得最佳性能,您应使用 Gradle和插件这两者的最新版本。插件版本所需的 Gradle 版本1.0.0 - 1.1.32.2.1 - 2.31.2.0 - 1.3.12.2.1https://blog.csdn.net/u013599928/article/details/113595637

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值