Gradle 的一个优势在于其可扩展域模型,其模型核心是任务(task)概念,task是一个可以被gradle认识执行的一个工作单元。
一:任务的核心是其操作
例如:我们可以声明一个任务来指定编译某些Java源,或将某些文件从一个目录拷贝到另外一个。任务可以独立执行某些操作,但也可以声明对某些任务的依赖性。gradle会确保所有的依赖都在运行,并确保它们的所有依赖性等等。
二:一个任务也可以定义自己的输入和输出
这使得一个任务可以确定自己是否需要执行自己的工作。
三:开始第一个任务吧
你可能会问,不需要安装gradle吗?不需要,gradle的第一个技巧,在于它知道如何自动安装。它只需要一个shell脚本和一个包括gradle下载和安装信息的小jar文件。在这个目录里有一个gradle wrapper副本。gradle wrapper 仅包含一个脚本,(一个适用linux和windows的脚本,下图红色标注),和一个gradle文件夹(它里面有一个小小的jar包)。
gradle wrapper 的工作方式,是通过gradle命令调用。它将检查gradle是否安装。如果没有安装的话,gradle wrapper会先下载安装。如果,没有安装的话,在执行脚本得时候,你看到了很多点,a lot of dots,even more dots.
(1)在安装完成之后,我们可以新建一个任务:
task hello {
println("hello world")
}
(2)浏览一下我们的任务:gradlew tasks
(3)我的这里有一个叫hello 为任务,我们执行一下
看到了“hello world”,是不是很温馨。
四:让我们对gradle做一个说明
/**
* On Mac/Linux, you can use the Gradle wrapper to run the `hello` task using:
./gradlew hello
If you're running into permissions issues, try:
sh gradlew hello
On Windows, it's simply:
gradlew hello
To tell Gradle to use this solution file as the build script instead of the
default build.gradle, use:
./gradlew -b solution.gradle hello
*/
五:Daemon介绍
org.gradle.daemon=true
Gradle需要大量的工作才能启动,这主要是因为它需要加快Java虚拟机的实例,使用gradle daemon 可以缩短启动时间,后台程序只是在操作系统后台等待,并执行一些有用的操作,系统指示Gradle使用后台程序时,后台程序流程已经启动,并会继续在后台运行,使得JBM实例保持activity状态,这使得后续的gradle运行可以使用相同的实例。默认情况下,Andorid Studio 在运行gradle时候,你需要明确启用它。简单来说,我们应该尽量一直使用后台程序,通过使用后台程序,我们可以享受很多性能优势,后续gradle还会进一步增强这些优势。
学习更多
Gradle与Android
Gradle插件的版本对应关系
加入我们,交流一下