Android Gradle插件和Gradle之间的区别

34
Android Studio 3.2 Canary 5
Build #AI-173.4630681, built on March 3, 2018
JRE: 1.8.0_152-release-1136-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.4-300.fc27.x86_64

我刚开始一个新项目,当我进行同步时,出现了这个对话框。

在这里输入图片描述

我想知道Android Gradle项目和Gradle之间的区别。

How would I upgrade to Gradle to version 4.5?
What is the purpose of both of these?

提前致以感谢

4个回答

68

Gradle 是构建系统。

你可以使用它来配合许多插件。其中之一是Android Gradle 插件
它被用来提供专门针对构建和测试Android应用的流程和可配置设置。


19
点赞以纠正一个常见的误解:Android Gradle插件是Gradle的插件,允许您构建Android应用程序,而不是为Android Studio提供使用Gradle的插件。 - user2891462

23
即使你已经为一个Java项目和Android项目编写了相同的Java源代码,它们的构建和执行方式完全不同。
Java项目源代码编译成字节码(.class文件)并在JVM(Java虚拟机)上运行。 Android项目源代码编译成Dalvik字节码(.dex文件)并在DVM(Dalvik虚拟机)上运行。这两个虚拟机都有不同的执行命令方式。
构建Android应用程序时,与标准Java应用程序不同,需要执行许多特定于平台的步骤(例如打包为apk,自动签名,项目变体管理,最低API级别)。随着Android Gradle插件的加入,这些差异可以更轻松、更精细地应用(因此构建Android应用程序变得更容易)。

17
这个回答不涉及“Android Gradle插件和Gradle之间的区别”。 - ALearner
1
@GrokkingDroid但这对我来说是最好的解释之一。 - SpringMaple
2
它实际上并没有回答问题,但是解释得很好。 - Ayush ShaZz

12

Android Studio的构建系统基于Gradle,而针对构建Android应用程序的Gradle Android插件增加了一些特定功能。尽管Android插件通常与Android Studio同步更新,但该插件(以及Gradle系统的其余部分)可以独立于Android Studio运行并单独更新。

来自文档:

https://developer.android.com/studio/releases/gradle-plugin.html


1
仅为更加完整起见:在文档(上面的链接)中,有一张表指定了每个Android Gradle插件版本所需的Gradle版本。 - Reyhane Farshbaf

-3
在Android开发中,与Gradle相关的有两个独立组件:
  1. Android Gradle插件(AGP)版本: Android Gradle插件是由Google提供的用于构建Android应用程序的构建工具。它负责编译代码、打包资源和生成APK文件等任务。在项目的build.gradle文件中,Android Gradle插件在"buildscript"块中指定,如下所示:
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
    }
}

在这个例子中,AGP版本被设置为"4.2.2"。
2. Gradle版本:Gradle是Android Studio使用的构建自动化工具,用于执行构建任务。它负责下载依赖项、管理项目配置和运行各种构建任务。Gradle版本可以在Gradle Wrapper配置或者"gradle-wrapper.properties"文件中指定,如下所示:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip

在此示例中,Gradle版本设置为“7.0.2”。

这两个版本之间的主要区别是:

目的:

AGP版本:它是专门用于Android应用程序开发的,并用于构建Android项目。 Gradle版本:它是各种项目使用的核心构建工具,不仅限于Android应用程序,可以用于构建各种项目。

职责:

AGP版本:它主要处理与Android特定的构建任务,如生成APK、处理资源和与Android库和组件集成。 Gradle版本:它处理项目的一般构建过程和依赖关系管理。它负责解决和下载所有项目依赖项,包括Android Gradle插件本身。

兼容性:

AGP 版本:Android Gradle 插件的版本需要与所使用的 Gradle 版本兼容。Android Gradle 插件版本通常指定了最低和最高兼容的 Gradle 版本。
Gradle 版本:它负责执行项目中的所有构建任务,包括与 Android Gradle 插件相关的任务。它应与您正在使用的 Android Gradle 插件版本兼容。
总之,Android Gradle 插件版本和 Gradle 版本是 Android 项目构建过程中的两个独立但相关的组件。它们具有不同的目的,并且确保它们彼此兼容对于成功构建和维护 Android 应用程序至关重要。

https://meta.stackoverflow.com/q/421831/11107541 - starball

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接