快速入门安卓Gradle指南(4/10)Gradle常见使用
牛客高级系列专栏:
安卓(安卓系统开发也要掌握)
- 想通关安卓面试,请看:《150道安卓高频面试题目录及答案链接》
- 想通关安卓系统面试,请看:《140道安卓系统Framework面试题目录及答案链接》
- 想进阶安卓开发,请看:《Android进阶知识体系解析_15大安卓进阶必备知识点》
- 想了解安卓APP完整开发流程,请看:《安卓APP完整开发流程》
- 想掌握安卓App性能优化,请看:《安卓性能优化讲解和实战专栏》
- 想掌握Gradle语法,制作Gradle插件,请看:《安卓Gradle语法解析和实践大全》
嵌入式
- 想通关嵌入式面试,请看: 《111道嵌入式面试题目录及答案链接》
- 想多掌握几个嵌入式项目,请看:《6个嵌入式项目交流分享(附源码)》
本人是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包装器
在工程目录,我们可以见到:
上面的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 的执行流程:
- 当我们第一次执行 ./gradlew build 命令的时候,gradlew 会读取 gradle-wrapper.properties 文件的配置信息
- 准确的将指定版本的 gradle 下载并解压到指定的位置(GRADLE_USER_HOME目录下的wrapper/dists目录中)
- 并构建本地缓存(GRADLE_USER_HOME目录下的caches目录中),下载再使用相同版本的gradle就不用下载了
- 之后执行的 ./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?这其实取决于你的部署策略以及项目的具体需求:
- 以下情况推荐使用gradlew
- 如果是下载别人的项目或者运行旧的不同版本的gradle项目或者运行别人提供的项目;
- 希望你的项目可以在任何机器上运行,而不需要手动安装 Gradle;
- 以下情况推荐使用gradle
- 新建一个项目时;
- 希望更快的执行速度;
- 需要更多的命令选项和参数,来更加灵活的定制构建过程和环境;
因此,具体选择哪个命令,应该结合你的项目需求和部署环境进行考虑。
2、Gradle项目生命周期
Gradle 项目的生命周期可以分为三个主要阶段:初始化阶段、配置阶段和执行阶段。
- 初始化阶段:开始执行 Gradle Wrapper 或普通的 Gradle 命令时,Gradle 会在当前目录下查找
settings.gradle
和gradle.properties
文件并读取它们的配置信息。然后 Gradle 会创建一个包含项目信息和默认设置的项目对象,在 Gradle 的生命周期中,这个对象被称为Project
对象。 - 配置阶段:在 对象创建后,Gradle 会读取项目根目录下的 文件并根据文件的内容配置项目的具体行为。在 Gradle 的配置阶段,开始加载项目中所有模块的 build.gradle 中的语句, 根据脚本代码
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
如果你想学习Android App开发,那么学习Gradle一定是必要的。 Gradle是一种构建工具,用于编译和构建Android应用程序,它可以自动处理依赖关系,生成APK文件等。通过本指南,你将掌握Gradle的基本概念和使用技巧,以及如何在工程中配置Gradle。通过学习Gradle,你可以更高效地构建和管理你的Android应用程序,提高你的开发效率,从而更好地满足用户需求。