Gradle对我来说有点困惑,对任何新的Android开发人员来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么Android Studio中包含它?
当前回答
下面是Gradle是什么以及如何在Android Studio中使用它的详细解释。
探索Gradle文件
当你在Android Studio中创建一个项目时,build系统 自动生成所有必要的Gradle构建文件。
Gradle构建文件
Gradle构建文件使用领域特定语言或DSL进行定义 自定义构建逻辑和与android特定的交互 Gradle的Android插件元素。 Android Studio项目由一个或多个模块组成,这些模块是可以独立构建、测试和调试的组件。每个模块都有自己的构建文件,因此每个Android Studio项目都包含两种Gradle构建文件。 顶级构建文件:在这里您可以找到组成项目的所有模块的通用配置选项。 模块级构建文件:每个模块都有自己的Gradle构建文件,其中包含模块特定的构建设置。您将花费大部分时间编辑模块级构建文件,而不是项目的顶级构建文件。
来看看这些构造。打开Android Studio的项目面板(通过选择项目选项卡),展开gradle Scripts文件夹。 Gradle Scripts文件夹中的前两项是项目级和模块级Gradle构建文件
顶级Gradle构建文件
每个Android Studio项目都包含一个单一的顶级Gradle构建文件。这个构建。gradle文件是出现在gradle Scripts文件夹中的第一个项目,并且清楚地标记为项目。
大多数情况下,您不需要对该文件进行任何更改,但是 理解它的内容和它所扮演的角色仍然是有用的 在您的项目中。
模块级Gradle构建文件
除了项目级的Gradle构建文件外,每个模块都有自己的Gradle构建文件。下面是一个带注释的基本模块级Gradle构建文件。
其他Gradle文件
除了构建。gradle Scripts文件夹包含一些其他gradle文件。大多数情况下,你不需要手动编辑这些文件,因为当你对项目进行任何相关更改时,它们会自动更新。但是,最好了解这些文件在项目中所扮演的角色。
gradle-wrapper。属性(Gradle版本)
这个文件允许其他人构建你的代码,即使他们的机器上没有安装Gradle。该文件检查是否安装了正确的Gradle版本,并在必要时下载必要的版本。
settings.gradle
该文件引用组成项目的所有模块。
gradle。物业(项目物业)
该文件包含整个项目的配置信息。 默认情况下为空,但可以对其应用广泛的属性 通过将它们添加到此文件来创建项目。
当地。属性(SDK Location)
这个文件告诉Android Gradle插件在哪里可以找到你的Android SDK安装。
注意:当地。属性包含特定于Android SDK本地安装的信息。这意味着您不应该将该文件置于源代码控制之下。
建议阅读- Tutsplus教程
由此我对Gradle有了一个清晰的认识。
其他回答
Gradle和Android
Gradle是一个开源的构建自动化工具。Gradle支持Java和针对Android的Kotlin
source files -> build tools -> output file(.apk, .jar, .aar ...)
你可以使用更多的低级构建工具,如javac, DX, D8[About], aapt[About], sign tools…
Gradle是更高级的工具,它可以在引擎盖下完成所有这些工作。它还有以下优点:
依赖管理器(约) 在Groovy或Kotlin上使用领域特定语言(DSL)来公开当前设置或自定义/扩展构建过程。例如,您可以编写一些任务,并通过任何项目共享它们
[格拉德尔 vs 格拉德卢]
在Android Studio中,Gradle是一个自定义构建工具,通过管理依赖关系和提供自定义构建逻辑来构建Android包(APK文件)。
APK文件(Android Application package)是一个特殊格式的ZIP文件,包含
字节码 资源(图像、UI、XML等) 清单文件
APK文件被签名并通过ADB (Android调试桥)推送到设备上执行。
Gradle之于Groovy JVM语言就像Ant之于Java。基本上,它是Groovy的构建工具。与Ant不同,它基于完整的Groovy语言。例如,您可以在Gradle脚本中编写Groovy脚本代码来完成某些任务,而不是依赖于特定于领域的语言。
我不知道IntelliJ IDEA的具体集成,但是想象一下,您可以“扩展”Groovy,这样您就可以编写特定的“构建”语言原语,而它们只是Groovy语言的一部分。(Groovy的元编程本身就是一个完整的讨论。)IntelliJ和谷歌可以使用Gradle构建一个非常高级的构建语言,然而,它是一种构建在可扩展的开放标准上的语言。
简短的回答
Gradle是一个构建系统。
长回答
在使用Android Studio之前,您的开发目的是使用Eclipse,很可能您不知道如何在没有Eclipse的情况下构建Android APK。
您可以在命令行上完成此操作,但必须了解每个工具(dx和AAPT)在SDK中的功能。 Eclipse通过为我们提供自己的构建系统,将我们从这些低级但重要的基本细节中拯救出来。
现在,你有没有想过为什么res文件夹和src文件夹在同一个目录中?
这就是构建系统出现的地方。构建系统自动获取所有源文件(.java或.xml),然后应用适当的工具(例如,获取.java类文件并将其转换为.dex文件),并将所有这些文件组合成一个压缩文件-我们心爱的APK。
这个构建系统使用了一些约定:一个例子是指定包含源文件(在Eclipse中是\src文件夹)或资源文件(在Eclipse中是\res文件夹)的目录。
现在,为了自动化所有这些任务,必须有一个脚本;您可以使用Linux中的shell脚本或Windows中的批处理文件语法编写自己的构建系统。明白了吗?
Gradle是另一个构建系统,它从其他构建系统中获取最好的功能,并将它们组合成一个。它是基于它们的缺点而改进的。它是一个基于jvm的构建系统。这意味着你可以用Android Studio使用的Java编写自己的脚本。
Gradle很酷的一点是它是一个基于插件的系统。这意味着如果你有自己的编程语言,你想要自动化从源代码构建一些包(输出像Java的JAR文件)的任务,那么你可以用Java或Groovy(或Kotlin,见这里)编写一个完整的插件,并将其分发到世界各地。
谷歌为什么使用它?
谷歌看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,而不需要学习Groovy或任何其他新语言。所以他们为Gradle编写了Android插件。
你一定见过那建筑。项目中的Gradle或build.gradle.kts文件。在这里您可以编写脚本来自动化您的任务。您在这些文件中看到的代码是Groovy或Kotlin代码。如果你写System.out。println(“你好Gradle !”);然后它会打印在你的控制台上。
在构建脚本中可以做什么?
一个简单的例子是,在实际构建过程发生之前,您必须将一些文件从一个目录复制到另一个目录。Gradle构建脚本可以做到这一点。
Gradle是一个易于定制的构建系统,支持按照约定模型进行构建。Gradle是用Java编写的,但是构建语言是Groovy DSL(域规范语言)。Gradle不仅支持多项目构建,还支持Ivy和Maven等依赖项。Gradle也可以支持构建非java项目。
https://medium.com/@ravirajdesai501/what-is-gradle-442458dd7ec1
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- ionic 2 - Error在Android Studio中找不到Gradle的安装版本
- 安装APK时出现错误
- Jersey在未找到InjectionManagerFactory时停止工作
- 如何生成字符串类型的buildConfigField
- 在Android Studio中创建aar文件
- Gradle代理配置
- 为什么构建类型与产品风味不同?
- 调试在哪里。Android Studio中的密钥存储库
- 错误:在Android SDK中找不到gradle包装器。可能需要更新你的Android SDK - Android
- Android Studio, logcat在应用程序关闭后清理
- Gradle替代mvn安装
- 有Grunt生成index.html不同的设置
- Android Studio中的。iml文件是什么?
- 为什么要把Gradle Wrapper提交给VCS?