[+]文章目录

前言:

在android开发中平常所接触的gradle脚本,配置好了点击run按钮就能编译、打包、安装等等操作,编译出想要的apk,大大方便了开发过程。但是自己对gradle的了解和掌握仅仅只是够用,于是大量查资料开始学习gradle。

这篇笔记主要解释了构建的概念、什么是构建工具,和gradle的基础概念,并清晰解释了学好gradle的必须基础:groovy 和 响应的DSL。

1. 什么是构建

构建是一个对象,环境,和生成软件产品方法的集合。

这里边包含了三方面的意思
1. 构建对象,就是构建的输入。构建的对象包括源代码(source code),发布事项(release notes),readme文件,变更记录(change log)等构建的原材料。
2. 构建环境就是一个可以进行构建,生成软件产品的地方。
3. 构建方法。构建方法告诉我们在构建环境中,按照构建方法所描述的内容,对构建对象进行构建就可以生成软件产品。

通俗的说,构建就是根据输入信息然后干一堆事情,最后得到几个产出物(Artifact)。
“构建”通常是指建设的过程。构建过程可能包含有计划,设计,检查工作的一些方面,但是在大多数时候,构建就是指创建事物过程中动手的那些部分。

2. 构建工具

构建工具概念

  1. 构建工具是一个可编程的工具,能够以可执行和有序的任务来表达满足需要的自动化过程。
  2. 构建工具就是用来让我们不再做机械重复的事情,解放我们的双手的。

Java中的构建工具

现在Java世界的常用构建工具:

  1. Ant
    Ant使用XML作为脚本编写格式。 XML,本质上是层次化的,并不能很好地贴合Ant过程化编程的初衷。Ant的另外一个问题是,除非是很小的项目,否则它的XML文件很快就大得无法管理。

  2. Maven
    Maven的也使用xml作为脚本。XML作为配置文件的格式有严格的结构层次和标准,定制化目标(goal)很困难。因为Maven主要聚焦于依赖管理,实际上用Maven很难写出复杂、定制化的构建脚本。
    即很难描述出if(某条件) xxx else(某条件) xxx,这样的语句。

  3. Gradle

    • Gradle结合了前两者的优点,在此基础之上做了很多改进。它具有Ant的强大和灵活,又有Maven的生命周期管理且易于使用。
    • Gradle不用XML,它使用基于Groovy的专门的DSL,从而使Gradle构建脚本变得比用Ant和Maven写的要简洁清晰。Gradle样板文件的代码很少,这是因为它的DSL被设计用于解决特定的问题:贯穿软件的生命周期,从编译,到静态检查,到测试,直到打包和部署。

3. Gradle介绍

基于:

  1. gradle基于groovy。所以能很好解决Maven的局限性,很方便写出复杂、定制化的构建脚本。
  2. gradle是一种DSL(Domain Specific Language),领域特定语言
    所谓领域专用语言(Domain Specific Language/DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。
    DSL通俗讲就是行话。
    在Android studio构建中,该行话就是: Android Plugin DSL Reference。必须要了解它才能写好配置脚本。

如何学习:

知道了gradle基于基于groovy,并是一种DSL,所以要想掌握gradle,必须要了解这么两个基础知识 :

  1. Groovy。了解Groovy语言是掌握Gradle的基础。
  2. 了解Gradle的DSL。了解Gradle的行话。

 

参考

深入理解Android之Gradle <—这篇文章真的好!!!全部基于该文章而理解。
什么是构建
什么是构建工具
Java构建工具:Ant vs Maven vs Gradle