Android studio Android Studio中的Gradle是什么?
Gradle对我来说有点困惑,对任何新的Android开发者来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么它包含在Android Studio中?Gradle对于Groovy JVM语言来说就像ant对于Java一样。基本上,它是Groovy的构建工具。与Ant不同,它基于完整的Groovy语言。例如,您可以在Gradle脚本中编写Groovy脚本代码来执行某些操作,而不是依赖于特定的领域语言Android studio Android Studio中的Gradle是什么?,android-studio,gradle,android-gradle-plugin,build-automation,Android Studio,Gradle,Android Gradle Plugin,Build Automation,Gradle对我来说有点困惑,对任何新的Android开发者来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么它包含在Android Studio中?Gradle对于Groovy JVM语言来说就像ant对于Java一样。基本上,它是Groovy的构建工具。与Ant不同,它基于完整的Groovy语言。例如,您可以在Gradle脚本中编写Groovy脚本代码来执行某些操作,而不是依赖于特定的领域语言 我不知道IntelliJ的具体集成,但想象一下,
我不知道IntelliJ的具体集成,但想象一下,您可以“扩展”Groovy,这样您就可以编写特定的“构建”语言原语,它们只是Groovy语言的一部分。(Groovy的元编程本身就是一个完整的讨论。)IntelliJ/Google可以使用Gradle构建一个非常高级的构建语言,然而,它是一种基于可扩展、开放标准的语言。这是Google希望用于Android的新构建工具。它之所以被使用,是因为它比ant更具可扩展性和实用性。它旨在增强开发人员的体验 您可以在这里查看Android开发团队的Xavier Ducrohet的演讲
还有另一个关于Android Studio的演讲,也是由Xavier和Tor Norbye主持的 Gradle是一种构建程序源代码的构建工具。因此,它是Android Studio的重要组成部分,需要在开始开发应用程序之前安装
我们不需要单独安装,因为在我们制作第一个项目时,Android Studio会为我们安装 Gradle是一款适用于android的高级构建工具包,它可以管理依赖项并允许您定义自定义构建逻辑。功能就像
- 自定义、配置和扩展生成过程
- 使用同一项目为您的应用程序创建多个具有不同功能的APK
- 重用代码和资源
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,请参阅)编写一个完整的插件,并将其分发到世界其他地方
谷歌为什么使用它?
谷歌看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,而无需学习Groovy或任何其他新语言。所以他们为Gradle编写了Android插件
您必须在项目中看到build.gradle
文件。在这里,您可以编写脚本来自动化任务。您在这些文件中看到的代码是Groovy代码。如果您编写System.out.println(“Hello Gradle!”)代码>然后它将在您的控制台上打印
在构建脚本中可以做什么?
一个简单的例子是,在实际构建过程发生之前,必须将一些文件从一个目录复制到另一个目录。Gradle构建脚本可以做到这一点。您可以在此处找到有关Gradle的所有信息:
新构建系统的目标
新构建系统的目标是:
- 使代码和资源易于重用
- 可以轻松创建应用程序的多个变体,用于多apk分发或不同风格的应用程序
- 使构建过程易于配置、扩展和自定义
- 良好的IDE集成
为什么是格拉德尔?
Gradle是一个高级构建系统,也是一个高级构建系统
允许通过插件创建自定义构建逻辑的工具包
以下是一些让我们选择Gradle的功能:
- 用于描述和操作构建逻辑的领域特定语言(DSL)
- 构建文件基于Groovy,允许通过DSL混合声明性元素,并使用代码操作DSL元素
提供自定义逻辑
- 通过Maven和/或Ivy内置依赖关系管理
- 非常灵活。允许使用最佳实践,但不强制使用自己的做事方式
- 插件可以公开自己的DSL和API,供构建文件使用
- 良好的工具API,支持IDE集成
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
source files -> build tools -> output file(.apk, .jar, .aar ...)