Gradle和Android Gradle Plugin

对比

GradleAndroid Gradle Plugin
主要文件1、build.gradle:项目根目录下的构建脚本文件,用于配置项目的构建过程和全局设置。2、settings.gradle:配置项目的模块。3、gradle-wrapper.properties:Gradle Wrapper 的配置文件,用于指定 Gradle 版本和下载地址。4、gradle.properties:Gradle 的一般配置文件,可以定义项目的自定义属性。5、local.properties:本地开发环境的配置文件,包含 SDK 路径等信息。AGP 本身作为一个 Gradle 插件,其代码和逻辑被包含在 Android 项目的 Gradle 插件依赖中,因此 AGP 并不包含特定的文件。AGP 主要通过在项目根目录下的 build.gradle 文件中进行配置和使用。
指定版本gradle-wrapper.properties中distributionUrlbuild.gradle中dependencies.classpath
源码https://github.com/gradle/gradlehttps://android.googlesource.com/platform/tools/base
APIhttps://docs.gradle.org/current/javadoc/index.htmlhttps://developer.android.com/reference/tools/gradle-api/8.2/classes
API调用方式在 Gradle 构建脚本(通常是 build.gradle 文件)中直接调用 Gradle API 来配置项目、定义任务、管理依赖关系等。gradlew 脚本本身并不提供直接调用 Gradle API 的功能。但是,您可以在 build.gradle 文件中编写 Gradle 构建脚本,然后使用 gradlew 脚本来执行这些构建脚本。Android 项目的 build.gradle 文件中直接调用 AGP API。通过 Gradle 脚本语言(Groovy 或 Kotlin),您可以使用 AGP API 来配置 Android 项目的构建过程、定义任务、管理依赖关系等
Task APITask是Gradle API的一部分。它是Gradle构建系统中的核心概念之一,用于表示构建过程中的工作单元。Android Gradle Plugin(AGP)利用了Gradle的任务(Task)概念,并提供了一些特定于Android开发的任务,如编译源代码、打包APK、签名应用等。

一、每个版本的Gradle plugin所需的Gradle版本:

为了能有更好的体验,我们应该尽可能使用最新版的gradle和gradle plugin。
更新Gradle点这里

Plugin versionRequired Gradle version
1.0.0 - 1.1.32.2.1 - 2.3
1.2.0 - 1.3.12.2.1 - 2.9
1.5.02.2.1 - 2.13
2.0.0 - 2.1.22.10 - 2.13
2.1.3 - 2.2.32.14.1+
2.3.0+3.3+
3.0.0+4.1+
3.1.0+4.4+
3.2.0 - 3.2.14.6+
3.3.0 - 3.3.34.10.1+
3.4.0 - 3.4.35.1.1+
3.5.0 - 3.5.45.4.1+
3.6.0 - 3.6.45.6.4+
4.0.0+6.1.1+

二、什么是Gradle

Gradle集成方式

在gradle/wrapper/gradle-wrapper.properties中配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
通过修改gradle-xxx版本号,自动下载对应版本的gradle包。
通常,Gradle的发行版本(distribution)设置为Wrapper.

设置 - Build,Execution,Deployment - Build Tools - Gradle 中
Gradle Distribution = Wrapper

Gradle Distribution

Gradle Distribution指的是Gradle构建工具的发行版或分发版本。Gradle是一种流行的构建自动化工具,用于构建、测试和部署软件项目。Gradle distribution包括Gradle的核心程序、插件、依赖项以及其他必要的文件,使得用户可以在其计算机上使用Gradle进行项目构建和管理。Gradle distributions通常以压缩包的形式提供,用户可以下载并解压以开始使用Gradle。

Gradle Wrapper

Gradle Wrapper 是 Gradle 构建工具的一部分,它允许您在没有预先安装 Gradle 的情况下在项目中使用 Gradle。Gradle Wrapper 将 Gradle 的发行版包装在项目中,并提供了一个简单的命令行接口,以便在项目中使用 Gradle。

Gradle Wrapper 包括以下两个主要文件:

gradlew:这是一个可执行文件(在 Unix/Linux 系统上为 shell 脚本,在 Windows 上为批处理文件),用于运行 Gradle 任务。gradlew 文件会自动下载并使用指定版本的 Gradle,而无需手动安装 Gradle。这使得您可以在项目中使用特定版本的 Gradle,而不必担心本地环境中是否已安装了 Gradle。

gradle/wrapper 目录:该目录包含了 gradle-wrapper.jar 和 gradle-wrapper.properties 文件。gradle-wrapper.jar 包含了 Gradle Wrapper 的代码逻辑,而 gradle-wrapper.properties 文件包含了指定 Gradle 版本和下载地址的配置信息。

使用 Gradle Wrapper 有几个优点:

  • 便携性:Gradle Wrapper 将 Gradle 版本与项目一起提供,使得项目更加便携和可移植。

  • 版本控制:可以将 Gradle Wrapper 的配置文件(gradle-wrapper.properties)纳入版本控制系统,确保所有开发者使用相同版本的 Gradle。

  • 自动化安装:Gradle Wrapper 会自动下载并安装指定版本的 Gradle,减少了手动安装 Gradle 的步骤。

三、什么是Gradle plugin

Android Gradle Plugin(AGP)

AGP是Android项目的构建引擎。以下是一些在Android Studio中使用AGP的基本步骤:

1、创建新项目:在Android Studio中创建新项目时,它会自动配置并使用最新版本的AGP。

2、配置构建文件:在项目的build.gradle文件中配置构建脚本和依赖项。主要的构建脚本是build.gradle和settings.gradle。

3、使用插件功能:AGP提供了许多插件和功能,例如应用程序ID管理、签名配置、构建类型和渠道配置等。可以在build.gradle文件中配置这些功能。

4、构建和运行应用:通过Android Studio的构建菜单或命令行工具运行构建任务,以编译、打包和运行应用程序。AGP会负责处理构建流程中的各种任务,如资源处理、代码混淆等。

5、调试和优化:利用Android Studio的调试工具和性能优化功能,调试和优化应用程序。AGP也提供了一些调试和优化的功能,如资源优化和代码混淆。

AGP使用什么语法?

Android Gradle Plugin (AGP) 使用 Groovy 和 Kotlin DSL 两种语法来配置构建脚本。
Groovy DSL:
在较早的版本中,Android项目的构建脚本通常使用 Groovy DSL,它是基于 Groovy 编程语言的一种声明式语法。Groovy DSL提供了一种简洁而灵活的方式来配置构建和依赖项。示例:

android {
    compileSdkVersion 31
    buildToolsVersion "31.0.0"

    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 21
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"
    }
}

Kotlin DSL:
从较新的版本开始,AGP 还支持使用 Kotlin DSL 来编写构建脚本。Kotlin DSL 使用 Kotlin 编程语言的语法,提供了更加类型安全和表达力强的方式来配置构建。示例:

android {
    compileSdkVersion(31)
    buildToolsVersion("31.0.0")

    defaultConfig {
        applicationId = "com.example.myapp"
        minSdkVersion(21)
        targetSdkVersion(31)
        versionCode = 1
        versionName = "1.0"
    }
}

Android Gradle Plugin DSL

DSL的全称是domain-specific language,与之相对的是GPL(general-purpose language)。
常见的DSL有:HTML,Shell,make语言,ant语言,maven语言,rpm语言,dpkg语言,awk语言,正则表达式,dc计算机语言等,有些DSL语言又被称为微型语言
常见的GPL有:Java,C等

我们知道Android Studio的构建系统是基于上面所说的Gradle,而Android Gradle plugin针对构建Android App又添加了许多特性

虽然这个Android plugin通常紧跟Android Studio一同升级,然而这个plugin(和其余的gradle系统)也是可以脱离Android Studio独立运行并单独更新的。

如何修改Gradle plugin版本

要修改 Android Gradle Plugin (AGP) 版本,您需要编辑您的项目根目录下的 build.gradle 文件。在这个文件中,您会找到类似于 classpath ‘com.android.tools.build:gradle:4.1.0’ 的代码行,其中 4.1.0 是 AGP 的版本号。您可以修改这个版本号来指定您想要使用的 AGP 版本。

下面示例,通过在build.gradle文件设置plugin版本为4.0.0:

buildscript {
    repositories {
        // Gradle 4.1 and higher include support for 
        // Google's Maven repo using the google() method. 
        // And you need to include this repo to download
        // Android Gradle plugin 3.0.0 or higher.
        google()
        ...
    }
    dependencies {
        // Set Gradle plugin to version 4.0.0.
        classpath 'com.android.tools.build:gradle:4.0.0'
    }
}
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值