Gradle对我来说有点困惑,对任何新的Android开发人员来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么Android Studio中包含它?


当前回答

Gradle是一个自定义的构建工具,用于构建APK文件。它也被称为应用程序包工具包。

其他回答

Gradle是一个构建系统。构建系统是设计用于自动化程序编译过程的软件工具。构建系统有各种形式,并用于各种软件构建任务。而他们的主要目标是有效地创建可执行文件。

另一个相关的术语是构建自动化,它是自动化创建软件构建的过程,以及相关的过程,包括:将计算机源代码编译成二进制代码,打包二进制代码,以及运行自动化测试。

其他语言的类似构建系统如下(见完整列表):

Apache Ant和Apache Maven - Java sbt -用于Scala (Play框架等) 基于python的构建工具 Rake (Apache Builder) - Ruby Leiningen for Clojure

Gradle之于Groovy JVM语言就像Ant之于Java。基本上,它是Groovy的构建工具。与Ant不同,它基于完整的Groovy语言。例如,您可以在Gradle脚本中编写Groovy脚本代码来完成某些任务,而不是依赖于特定于领域的语言。

我不知道IntelliJ IDEA的具体集成,但是想象一下,您可以“扩展”Groovy,这样您就可以编写特定的“构建”语言原语,而它们只是Groovy语言的一部分。(Groovy的元编程本身就是一个完整的讨论。)IntelliJ和谷歌可以使用Gradle构建一个非常高级的构建语言,然而,它是一种构建在可扩展的开放标准上的语言。

我将以尽可能简单的方式用Java来解释它。

假设我们有一个简单的hello world项目(HelloWorld.java)。为了运行项目,我们需要编译它(HelloWorld.class)。然后我们将在JVM (java虚拟机)中运行它。

编译代码的过程可以使用自带javac.exe (Java编译器命令)的JDK (Java开发工具包)完成。它将Java源文件(. Java)编译为字节码类文件(.class)。

使用所有.java源文件的列表调用javac.exe。例如,对于单个源文件

javac HelloWorld.java

编译多个Java源文件

javac Program1.java Program2.java Program3.java

这并不是很有趣,因为一旦你开始做大项目,你可能会开始使用第三方提供的功能(jar文件)。例如 编译一个依赖于外部库的源文件:

javac -classpath mail.jar EmailSender.java

编译一个依赖于外部多个库的源文件:(其中Myprogram.java是依赖于多个库的源文件)

javac -cp lib1.jar;lib2.jar;lib3.jar MyProgram.java

请记住,有时源文件依赖于100和1000多个库,这使得手动编译成为一项真正的艰苦工作。为了解决这个问题,我们有构建工具,例如Gradle, Maven(使编译过程没有错误,并且可以轻松完成多次)

像Gradle这样的内置工具的其他用途是

测试源代码很容易 打包您的应用程序的格式,以便它可以 发布和部署很容易

搜索结果

来自网络的特色片段

Android |构建。Gradle。

Gradle是一个构建系统(开源),用于自动化构建、测试、部署等. ...例如,将一些文件从一个目录复制到另一个目录的简单任务可以在实际构建过程发生之前由Gradle构建脚本执行。

简单来说,Gradle是Android Studio为了实现两个重要过程而提供的工具:

构建我们的项目 将AndroidManifest.xml、res文件夹和二进制代码打包到一个名为APK的特殊格式压缩文件中