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


当前回答

Gradle使复杂的Android项目的构建自动化成为可能,这些项目包含来自多个源、项目、库等的数万行代码。它可以根据大量的配置规范有条件地生成多个优化的apk -如果你感兴趣,其他答案提供了Gradle这方面的更多细节。

然而,如果你是Android开发的新手,Gradle在99%的情况下会阻止你的项目构建。这是一个不可思议的复杂系统,有效地混淆了Android构建过程,并基本上使它无法提供给没有经验的开发人员,即为了构建一个简单的入门级Android应用程序,毫无戒心的新手可能需要学习和理解许多他们没有讨价讨价的东西,例如:

Android APK结构和生态系统 Android工作室 Java类路径和依赖项 Groovy Gradle构建脚本 许多其他复杂而有趣的技术

所有这些对Android开发者来说都是有趣和有用的,但它们并不简单,而且是一个巨大的入门障碍。我怀疑,促使OP提出这个问题的原因是,在花了太长时间试图构建一个简单的应用程序,却不断受到Gradle的阻挠后,新手开发者不可避免地会感到沮丧。所有这些技术都有大量的高技术性文档,这反而加剧了这个问题。同样,对于大量的开发需求,Gradle是多余的。

另一种选择是编写一个shell脚本,通过自动化Android SDK中可用的工具来构建项目。这种方法的优点有很多,对于初学者来说,这可能是学习和理解构建过程和Android生态系统的最佳方法,它允许你完全控制应用的构建方式。然而,这种方法更适合那些无可救药的技术迷,而不是那些没有经验的新手。

值得注意的是(如果有的话请告诉我),它是一个入门级的轻量级IDE,具有较少的功能集,同时简化了构建过程,而不模糊它(所以不是Netbeans或Eclipse),它可能仍然使用Gradle (Ant的问题是什么)。它可以很容易地生成符合一些常见配置的apk,并使用一个可以演变为完整的Android Studio项目的项目结构,如果你决定这样做的话。

其他回答

作者@Brian Gardner:

Gradle是一个用于编程项目的广泛的构建工具和依赖管理器。它有一种基于Groovy的领域特定语言。Gradle还为多种类型的项目提供了基于约定的构建支持,包括Java、Android和Scala。

Gradle的特点:

依赖关系管理 从Gradle中使用Ant Gradle插件 Java插件 Android插件 多项目构建

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

例如,在其他语言中:

Java的Ant和Maven 红宝石的耙子 A-A-P of C .NET的NAnt 在Linux中制作

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

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

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

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

Gradle是一个易于定制的构建系统,支持按照约定模型进行构建。Gradle是用Java编写的,但是构建语言是Groovy DSL(域规范语言)。Gradle不仅支持多项目构建,还支持Ivy和Maven等依赖项。Gradle也可以支持构建非java项目。

https://medium.com/@ravirajdesai501/what-is-gradle-442458dd7ec1

Gradle是一个高级的Android构建工具包,用于管理依赖关系,并允许您定义自定义构建逻辑。特征就像

自定义、配置和扩展构建过程。 使用同一个项目为应用程序创建多个具有不同功能的APK文件。 重用代码和资源。

参考