Gradle 对我来说有点令人困惑,对于任何新的 Android 开发人员也是如此。谁能解释一下 Android Studio 中的 Gradle 是什么以及它的用途是什么?为什么它包含在 Android Studio 中?
Gradle 是一个构建系统。
在 Android Studio 之前,您使用Eclipse进行开发,而且很可能,您不知道如何在没有 Eclipse的情况下构建您的 Android APK 。
您可以在命令行上执行此操作,但您必须了解每个工具(dx和AAPT)在 SDK 中的作用。Eclipse 通过为我们提供自己的构建系统,将我们从这些低级但重要的基本细节中拯救出来。
现在,您有没有想过为什么该res文件夹与您的文件夹位于同一目录中src?
res
src
这是构建系统进入画面的地方。构建系统自动获取所有源文件(.java或.xml),然后应用适当的工具(例如,获取.java类文件并将它们转换为.dex文件),并将所有这些文件组合成一个压缩文件 - 我们钟爱的 APK。
.java
.xml
.dex
这个构建系统使用了一些约定:一个示例是指定包含源文件(在 Eclipse 中是\src文件夹)或资源文件(在 Eclipse 中是\res文件夹)的目录。
\src
\res
现在,为了自动化所有这些任务,必须有一个脚本;您可以使用 Linux 中的 shell 脚本或 Windows 中的批处理文件语法编写自己的构建系统。知道了?
Gradle 是另一个 构建系统 ,它采用了其他构建系统的最佳功能并将它们组合成一个。它是基于他们的缺点而改进的。它是一个 基于 JVM 的构建系统 。这意味着您可以使用 Android Studio 使用的 Java 编写自己的脚本。
Gradle 的一个很酷的地方是它是一个 基于插件的系统 。这意味着,如果您有自己的编程语言,并且希望从源代码自动构建一些包(如 Java 的JAR文件的输出),那么您可以用 Java 或Groovy(或Kotlin,请参见此处)编写一个完整的插件,并将其分发到世界其他地方。
Google 看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,几乎没有学习曲线,而且无需学习 Groovy 或任何其他新语言。所以他们为 Gradle 编写了 Android 插件。
您一定已经build.gradle在项目中看到过文件。在那里你可以编写脚本来自动化你的任务。您在这些文件中看到的代码是 Groovy 代码。如果你写System.out.println("Hello Gradle!");,那么它将在你的控制台上打印。
build.gradle
System.out.println("Hello Gradle!");
一个简单的例子是,在实际构建过程发生之前,您必须将一些文件从一个目录复制到另一个目录。Gradle 构建脚本可以做到这一点。