在使用android studio开发android程序时,as就是基于gradle进行构建的,我们只需要通过run就可以编译、打包、安装,非常方便,但是究竟gradle是什么呢?
首先,我们得知道什么是构建工具。实际上,构建工具是一个可编程的工具,它可以帮助我们执行有序的任务,实现工程的自动化,而减少甚至避免不必要的手动操作,即构建工具是一个工具,它就是解放生产力,提高效率的。 在前端中,webpack就是一个构建工具,它不仅仅可以打包,还可以完成测试、热更新、部署、检查、优化等一些列的任务,从而实现了开发的工程化,提高了效率。
在java中,下面几种构建工具也都是常用的:
之前介绍到Gradle是基于ant和maven的更为方便使用的构建工具,并且提到了它是基于groovy的,而DSL是什么呢?
DSL即Domain Specific Language(领域专用语言),它的基本思想就是“求专不求全”,即DSL就是用于构架工具的,而不是为了进行数值计算等,它的目的很单一,仅仅是专门针对某一特定问题的计算机语言。
Groovy和java的语法很像,但它是一种动态语言,和java一样,运行在java虚拟机中,所以我们可以认为是Groovy扩展了java语言,下面就是java、Groovy和jre的关系:
实际上,Groovy Code在真正执行的时候,其实已经变成了java字节码,所以JVM根本不知道自己运行的是Groovy代码。
下图可以用来阐述Gradle的工作流程:
即Gradle工作包含了三个阶段:
注意每个阶段之后我们都可以有hook去执行自定义函数。
参考文章:https://blog.csdn.net/Innost/article/details/48228651
原文:https://www.cnblogs.com/zhuzhenwei918/p/8992856.html