快速入门安卓Gradle指南(4/10)Gradle常见使用

牛客高级系列专栏:

安卓(安卓系统开发也要掌握)


嵌入式


本人是2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业安卓开发经验,该专栏整理本人对安卓Gradle的理解。网上安卓资料千千万,笔者将继续维护专栏,承诺提供专栏内容免费技术答疑,直接咨询即可,助您提高安卓学习效率!

目录开始⬇

  • 1、Gradle Wrapper包装器
    • 1.1 为什么需要Gradle Wrapper包装器
    • 1.2 使用gradlew还是gradle
  • 2、Gradle项目生命周期
  • 3、常用命令
  • 4、常见操作
    • 4.1 引入插件
    • 4.2 指定maven仓库

上一篇文章介绍了Android项目的工程结构,Android Studio 工程目录结构和 Gradle 构建系统密切相关,Gradle 是 Android Studio 的默认构建系统,并管理整个 Android 工程的编译和构建过程。通过 Gradle 的配置,我们可以实现工程的分层、模块化开发,以及构建版本号更新和多渠道打包,从而实现更加高效和可维护的 Android 工程开发。

因此,本节讲解Gradle的运行和调试。

1、Gradle Wrapper包装器

1.1 为什么需要Gradle Wrapper包装器

在工程目录,我们可以见到:

image.png

上面的gradle-wrapper其实是对Gradle的一层封装。我们经常会遇到这些情况:

  • 把自己的安卓app代码给别人,别人电脑没有安装Gradle;
  • 从网上或者别人拿到的项目,项目所使用的Gradle版本太低,或者自己电脑里面的Gradle版本太低,达不到项目的要求;

这时候,我们就可以考虑使用Gradle Wrapper了,因为Gradle Wrapper正是用于解决不同项目使用不同Gradle版本的问题,其核心是一个用来下载和安装特定版本 Gradle 的脚本,可以让开发人员和团队自动下载和使用指定版本的 Gradle 来编译项目,从而不需要手动下载和安装 Gradle。官方都建议使用Gradle Wrapper。

注:在项目根目录可以看到gradlew文件和gradle.bat文件,这两个都是上述说的Gradle脚本文件,前者适用于Unix/Linux/Mac系统,后者适用于Windows系统。本人使用Mac系统,故本文均使用gradlew进行说明。

gradle/wrapper/gradle-wrapper.properties文件的内容解析:

//Gradle 发布包(distribution)的基础路径,相对于用户目录 
distributionBase=GRADLE_USER_HOME  

//Gradle 发布包存储相对路径相对于 distributionBase
distributionPath=wrapper/dists  

//Gradle 压缩包存储路径的基础路径,相对于用户目录
zipStoreBase=GRADLE_USER_HOME

//Gradle 压缩包存储路径的相对路径,相对于 zipStoreBase
zipStorePath=wrapper/dists  

//下载 Gradle 发布包的地址,即 Gradle 的下载地址
distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip

上面提到的 GRALE_USER_HOME 环境变量用于这里的 Gradle Wrapper 下载的特定版本的 gradle 存储目录。如果我们没有配置过 GRALE_USER_HOME 环境变量,默认在当前用户家目录下的.gradle 文件夹中。

GradleWrapper 的执行流程:

  1. 当我们第一次执行 ./gradlew build 命令的时候,gradlew 会读取 gradle-wrapper.properties 文件的配置信息
  2. 准确的将指定版本的 gradle 下载并解压到指定的位置(GRADLE_USER_HOME目录下的wrapper/dists目录中)
  3. 并构建本地缓存(GRADLE_USER_HOME目录下的caches目录中),下载再使用相同版本的gradle就不用下载了
  4. 之后执行的 ./gradlew 所有命令都是使用指定的 gradle 版本

1.2 使用gradlew还是gradle

运行Gradle命令的时候,一般有如下两种方式:

  • cd到项目根目录,此时根目录有名为gradlew的可执行文件,运行任意命令,如:./gradlew build(再次说明,如果是Windows电脑,则需要执行./gradlew.bat build命令)就可以开始编译工程,该指令使用的Gradle版本是此时gradle-wrapper.properties文件里配置的版本;
  • cd到项目根目录,因为事先下载好gradle并把gradle命令添加到环境变量,因此直接运行gradle build指令也可以开始编译工程,该指令使用的Gradle版本是安装本地Gradle时,下载的Gradle版本;

那么,到底使用gradlew还是gradle?这其实取决于你的部署策略以及项目的具体需求:

  1. 以下情况推荐使用gradlew
  • 如果是下载别人的项目或者运行旧的不同版本的gradle项目或者运行别人提供的项目;
  • 希望你的项目可以在任何机器上运行,而不需要手动安装 Gradle;
  1. 以下情况推荐使用gradle
  • 新建一个项目时;
  • 希望更快的执行速度;
  • 需要更多的命令选项和参数,来更加灵活的定制构建过程和环境;

因此,具体选择哪个命令,应该结合你的项目需求和部署环境进行考虑。

2、Gradle项目生命周期

Gradle 项目的生命周期可以分为三个主要阶段:初始化阶段、配置阶段和执行阶段。

  1. 初始化阶段:开始执行 Gradle Wrapper 或普通的 Gradle 命令时,Gradle 会在当前目录下查找 settings.gradle 和 gradle.properties 文件并读取它们的配置信息。然后 Gradle 会创建一个包含项目信息和默认设置的项目对象,在 Gradle 的生命周期中,这个对象被称为 Project 对象。
  2. 配置阶段:在 对象创建后,Gradle 会读取项目根目录下的 文件并根据文件的内容配置项目的具体行为。在 Gradle 的配置阶段,开始加载项目中所有模块的 build.gradle 中的语句, 根据脚本代码

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

快速入门安卓Gradle指南 文章被收录于专栏

如果你想学习Android App开发,那么学习Gradle一定是必要的。 Gradle是一种构建工具,用于编译和构建Android应用程序,它可以自动处理依赖关系,生成APK文件等。通过本指南,你将掌握Gradle的基本概念和使用技巧,以及如何在工程中配置Gradle。通过学习Gradle,你可以更高效地构建和管理你的Android应用程序,提高你的开发效率,从而更好地满足用户需求。

全部评论
硬核
点赞
送花
回复
分享
发布于 2023-05-25 11:56 北京

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务