您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Gradle 简介

大家好,今天我们开始新专题 — Gradle。关于 Gradle 我们开发中用的非常多,它的知识点完全可以写一本书,这个专题我们重点针对 Gradle 在 Android 日常开发中的应用进行讲解。本文我们主要先介绍一下 Gradle 是什么?有哪些特性?优点在哪?为什么我们构建要用 Gradle?

作者简介:
Android 高级开发工程师,多年一线互联网企业开发经验。擅长 Android、r。熟悉 Android Framework层源码,对 Android 调优,UI 绘制,RxJava , OKHTTP 等三方主流框架源码有较深研究。

什么是 Gradle 呢?在 Gradle 官网中是这么介绍的:

Gradle is an open-source build automation tool focused on flexibility and performance. Gradle build scripts are written using a Groovy or Kotlin DSL. —官网

翻译成就是,Gradle 是专注于灵活性和的开源构建化工具。Gradle 构建脚本是使用 Groovy 或 Kotlin DSL 编写的。

我们看到了这里有个 DSL,下面我们看下什么是 DSL:

DSL 的全称是 Domain Specific Language,即领域特定语言,或者我们可以翻译成“特定领域的语言”。

它的特性就是 “ A specialized computer language designed for a specific task.”

翻译为:为某一类任务而专门设计的语言。 再通俗点来说,其实就是这个语言不通用,只能用于特定的某个领域,俗称“小语言”。因此 DSL 也是语言。

通过上面的介绍,说白了,Gradle 就是化的项目构建工具,用来帮助我们构建项目。

那么我们为什么要使用 Gradle 呢?

我们在写 Java 的时候,如果没有构建工具,我们需要在控制台,通过javac先将 Java 编译为 class ,然后再用jar命令将 class 打包为 jar 包。有了化构建工具只需要命令或是点按钮就可以打出 。试想下如果 Android 我们不用 Gradle 命令或是按运行按钮打包。那么我们得执行多少命令才能最终打出 apk 包。所以化构建帮我们做了很多事。

前面说到 Gradle 是化构建工具,那么我们下面对比一同类构建工具和 Gradle 相比的优缺点。
1. Apache Ant
Ant 全称是Another Neat Tool,它是由 James Duncan Davidson 开发的,最初是用来构建 Tomcat 的。发布于 2000 年,它的核心是由 Java 编写的因此具有平台无关性。构建脚本是 XML(build.xml)。在早期用 Eclipse 开发的 Android 的时候,构建工具就是 Ant。它的构建脚本有三个节点 project、target、task。

但是它有以下缺点:

2. Apache Maven
为了开发人员在使用 Ant 时面临的问题,Apache 在 2004 年发布了 Maven。Maven 除了项目构建外,还提供了高级项目管理工具。最初在 Jakata 项目中用来简化构建过程。Maven 和 Ant 针对项目构建的两个不同方面问题,Ant 是为 Java 项目提供平台构建任务,而 Maven 本身描述项目的高级方面。

Maven 同样有以下缺点:

总而言之,我们来总结一下:

Gradle 它是构建工具,采用 Groovy 或是 Kotlin 语言编写,汲取了 Ant 和 Maven 的优点,但是相比较于 Ant 和 Maven,Gradle 更加强大,高度可定制,构建更加。

目前我们开发中,Java 项目一般都用 IntelliJ IDEA,它的构建工具是 Maven,也可以使用 Ant。Android 项目认构建工具一般都是使用 Gradle 的,也是 Google 推荐的 Android 构建工具。我觉得后期 Java 也有可能会使用 Gradle 构建工具。因为 Gradle 它集各家之所长,既吸收了 Maven 的规范化和仓库概念,又吸收了 Ant 的 task 思想。

Gradle 从发布到现在已经有好多个版本了,现在最新的版本是 v6.1.1。下面主要介绍一下主版本和新版本的特性。

在 Gradle 官网,是这么介绍的:

Accelerate developer productivity

翻译过来就是:加快开发人员生产力

From mobile apps to microservices, from small startups to big enterprises, Gradle helps teams build, automate and deliver better software, faster.

翻译过来就是:从移动应用程序到微服务,从小型初创公司到大型企业,Gradle 可以帮助团队更快地构建,化和交付更好的软件。

Gradle 它汲取了 Ant 和 Maven 的优点,吸收了 Ant 的 task 思想,和 Maven 的规范化和仓库概念。采用 Groovy 或是 Kotlin 语言编写,但是它的量更少,可读性更强

Gradle 具有以下 3 大特性:

有上面的两点知识基础,学起这门课来相信大家会比较轻松。


联系我
置顶