Android studio Android Studio中的Gradle是什么?

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的具体集成,但想象一下,

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

Gradle对于Groovy JVM语言来说就像ant对于Java一样。基本上,它是Groovy的构建工具。与Ant不同,它基于完整的Groovy语言。例如,您可以在Gradle脚本中编写Groovy脚本代码来执行某些操作,而不是依赖于特定的领域语言


我不知道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

  • 重用代码和资源

简短回答 Gradle是一个构建系统

长话短说 在androidstudio之前,您使用Eclipse进行开发,很可能您不知道如何在没有Eclipse的情况下构建androidapk

您可以在命令行上执行此操作,但必须了解每个工具(dx、aapt)在SDK中的作用。 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,请参阅)编写一个完整的插件,并将其分发到世界其他地方

谷歌为什么使用它? 谷歌看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,而无需学习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 ...)