协慌网

登录 贡献 社区

Android Studio 中的 Gradle 是什么?

Gradle 对我和新的 Android 开发人员都有点困惑。任何人都可以解释 Android Studio 中的 gradle 是什么以及它的目的是什么?为什么 Gradle 包含在 Android Studio 中?

答案

简答

Gradle 是一个构建系统。

答案很长

在 Android Studio 之前,您使用 Eclipse 进行开发,并且很可能,您不知道如何在没有 Eclipse 的情况下构建 Android APK。

您可以在命令行上执行此操作,但您必须了解 SDK 中每个工具(dx,aapt)的功能。 Eclipse 通过为我们提供了自己的构建系统,从这些低级但重要的基础细节中拯救了我们所有人。

现在,你有没有想过为什么res文件夹与你的src文件夹在同一个目录中?

这是构建系统进入图片的地方。构建系统自动获取所有源文件( .java.xml ),然后应用适当的工具(例如,获取java类文件并将它们转换为dex文件),并将它们全部组合成一个压缩文件,我们心爱的 APK。

这个构建系统使用了一些约定:一个例子是指定包含源文件的目录(在 Eclipse 中它是\src文件夹)或资源文件(在 Eclipse 中它是\res文件夹)。

现在,为了自动化所有这些任务,必须有一个脚本; 您可以使用 Linux 中的 shell 脚本或 Windows 中的批处理文件语法编写自己的构建系统。得到它了?

Gradle 是另一个构建系统 ,它从其他构建系统中获取最佳功能并将它们合并为一个。它是基于它们的缺点而改进的。它是一个基于 JVM 的构建系统 ,这意味着您可以用 Java 编写自己的脚本,Android Studio 可以使用它。

关于 gradle 的一个很酷的事情是它是一个基于插件的系统 。这意味着如果你有自己的编程语言,并且想要从源代码中自动完成构建一些包(如 JAR for Java 的输出)的任务,那么你可以用 Java 或 Groovy(或 Kotlin,见这里 )编写一个完整的插件,将它分发给世界其他地方。

谷歌为何使用它?

Google 看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,几乎没有学习曲线,也无需学习 Groovy 或任何其他新语言。所以他们为 Gradle 编写了 Android 插件。

您必须在项目中看到build.gradle文件。在这里,您可以编写脚本来自动执行任务。您在这些文件中看到的代码是 Groovy 代码。如果你编写System.out.println("Hello Gradle!");然后它将在您的控制台上打印。

你可以在构建脚本中做什么?

一个简单的例子是,在实际构建过程发生之前,您必须将一些文件从一个目录复制到另一个目录。 Gradle 构建脚本可以执行此操作。

这是谷歌想要用于 Android 的新构建工具。它被使用是因为它比 ant 更具可扩展性和实用性。它旨在增强开发人员的体验。

您可以在此处查看来自Google I / O上的 Android 开发团队的 Xavier Ducrohet 的演讲。

Xavier 和 Tor Norbye 在 Android Studio 上还有另一个关于Google I / O 的讨论

Gradle是在Android Studio上运行的构建系统。

在其他语言中,例如: