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


当前回答

你可以在这里找到你需要知道的关于Gradle的一切: Gradle插件用户指南

新构建系统的目标 新的构建系统的目标是: 使代码和资源易于重用 可以轻松地创建应用程序的多个变体,无论是多apk分发还是不同风格的应用程序 使构建过程易于配置、扩展和自定义 良好的IDE集成 为什么它呢? Gradle是一个高级构建系统,也是一个高级构建 允许通过插件创建自定义构建逻辑的工具包。 下面是一些让我们选择Gradle的特性: 领域特定语言(DSL)来描述和操作构建逻辑 构建文件是基于Groovy的,允许在DSL中混合声明性元素,并使用代码来操作DSL元素 提供自定义逻辑。 通过Maven和/或Ivy内置依赖管理。 非常灵活。允许使用最佳实践,但不强制使用自己的做事方式。 插件可以公开它们自己的DSL和API供构建文件使用。 良好的工具API,允许IDE集成

其他回答

你可以在这里找到你需要知道的关于Gradle的一切: Gradle插件用户指南

新构建系统的目标 新的构建系统的目标是: 使代码和资源易于重用 可以轻松地创建应用程序的多个变体,无论是多apk分发还是不同风格的应用程序 使构建过程易于配置、扩展和自定义 良好的IDE集成 为什么它呢? Gradle是一个高级构建系统,也是一个高级构建 允许通过插件创建自定义构建逻辑的工具包。 下面是一些让我们选择Gradle的特性: 领域特定语言(DSL)来描述和操作构建逻辑 构建文件是基于Groovy的,允许在DSL中混合声明性元素,并使用代码来操作DSL元素 提供自定义逻辑。 通过Maven和/或Ivy内置依赖管理。 非常灵活。允许使用最佳实践,但不强制使用自己的做事方式。 插件可以公开它们自己的DSL和API供构建文件使用。 良好的工具API,允许IDE集成

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

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

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

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

我将以尽可能简单的方式用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这样的内置工具的其他用途是

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

简单的回答是,

Gradle是一个构建系统,它负责代码的编译、测试、部署和转换。Dex文件,从而在设备上运行应用程序。由于Android Studio预装了Gradle系统,因此不需要安装额外的运行时软件来构建我们的项目。

在Android Studio中,Gradle是一个自定义构建工具,通过管理依赖关系和提供自定义构建逻辑来构建Android包(APK文件)。

APK文件(Android Application package)是一个特殊格式的ZIP文件,包含

字节码 资源(图像、UI、XML等) 清单文件

APK文件被签名并通过ADB (Android调试桥)推送到设备上执行。