您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

「Gradle 进阶」史上最全的 Gradle 构建技术知识点都在这里了

时间:2022-12-06 19:49:34  来源:今日头条  作者:愿天堂没有代码

 

Gradle是一个构建工具,它是用来帮助我们构建App的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。Android Studio中默认就使用Gradle来完成应用的构建。有些同学可能会有疑问:”我用AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。“ 实际上,app的构建过程是大同小异的,有一些过程是”通用“的,也就是每个app的构建都要经历一些公共步骤。因此,在我们在创建工程时,Android Studio自动帮我们生成了一些通用构建规则,很多时候我们甚至完全不用修改这些规则就能完成我们app的构建。

 

有些时候,我们会有一些个性化的构建需求,比如我们引入了第三方库,或者我们想要在通用构建过程中做一些其他的事情,这时我们就要自己在系统默认构建规则上做一些修改。这时候我们就要自己向Gradle”下命令“了,这时候我们就需要用Gradle能听懂的话了,也就是groovy。Groovy是一种基于JVM的动态语言,关于它的具体介绍,感兴趣的同学可以文末参考”延伸阅读“部分给出的链接。

我们在开头处提到“Gradle是一种构建工具”。实际上,当我们想要更灵活的构建过程时,Gradle就成为了一个编程框架——我们可以通过编程让构建过程按我们的意愿进行。也就是说,当我们把Gradle作为构建工具使用时,我们只需要掌握它的配置脚本的基本写法就OK了


 


gradle组成

groovy语法(相当于安卓使用JAVA) build script block(点build文件) gradle api(和安卓一样在java的基础上还有添加了自己的api)

 

gradle从源码的编译、资源的编译、生成一个个Task逐个执行Task;Task源码开源

 

  • 扩展性: 支持插件机制
  • 兼容性:兼容所有ant、maven功能
生命周期

 

也就是各种任务(Task)的执行过程

ps:任务也有依赖性,某个任务执行如果依赖其他任务,则需要执行完其他任务;再执行此任务

1、声明周期的三个阶段 (1)情景回顾

诸如Executing task xxx、Configure project、BUILD SUCCESSFUL in 0s之类的,其实这些过程就是gradle执行声明周期的一些流程

(2)生命周期的三个阶段 1、initialization:初始化阶段

执行工程的setting.gradle文件

 

  • 解析整个工程下的所有Project,构建所有的Project对应的project对象
2、Configuration:配置阶段

 

解析所有project对象中的task,构建好所有的task拓扑图(有向无环图)

 

  • 这个有向无环其实就是各个执行一个Task所依赖的其他Task而形成的一种关系
3、Excution:执行阶段

 

执行具体的task,及其依赖的task(先执行目标Task依赖的Task,再执行目标Task)

如上情景回顾的实例,用户可以通过命令行输入命令,或者通过右面的Gradle窗口的Task下双击Task名执行Gradle任务;执行了clean命令

观察发现:

 

1、19:04:22: Executing task ‘clean’…这里开始初始化 2、Configure project :这里开始配置 3、Task :clean执行任务(clean没有依赖其他的Task所以直接执行了clean,你如果执行build任务,或在执行前先执行build依赖的task)
2、声明周期的常见监听方法
  • tips:Project,Task,是Gradle提供的api

 

建立个Gradle工程

 

  • 和建立什么Helloword项目一样,一直next即可,建立完成后会有如下两个点gradle文件
1、由上我们知道你执行一个任务时,会先读取这个setting.gradle完成工程初始化、配置、然后再执行具体任务 2、在看看Build.gradle文件,其实他就是一个任务名,即Task的名字。和上文的clean一样是一个任务。我们可以在命令行输入 gradle build或者右面的Gradle窗口,双击Task先的build即可执行build任务。这时便会执行build.gradle内部的代码的
(1)初始化结束/配置开始阶段的监听 padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">this.beforeEvaluate {} (2)配置阶段完成后的监听 this.afterEvaluate {} 1 (3)执行任务完成 this.gradle.buildFinished {} 1 (4)初始化阶段开始

 

只需在setting.gradle 文件中写逻辑即可,我们知道这里肯定会在初始化之前执行。

3、声明周期监听Demo (1)setting.gradle rootProject.name = 'Test' println("初始化阶段开始") (2)build.gradle plugins { id 'groovy' } group 'Test' version '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.3.11' testCompile group: 'junit', name: 'junit', version: '4.12' } //----------------------------以上为系统的,以下为我们自己写的回调demo------------------------------------ //配置阶段开始前 监听回调 this.beforeEvaluate {} // 配置阶段完成后 this.afterEvaluate { println("配置完成后") } this.gradle.buildFinished { println("执行阶段执行完毕") } 4、其他常见监听方式 //等同beforeEvaluate this.gradle.beforeProject {} //等同配置阶段完成后 this.gradle.afterProject {}



Tags:Gradle   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
教你如何选择Gradle和Maven
在软件开发领域,构建工具对于自动化编译、测试和打包代码过程至关重要。Gradle 和 Maven 是当今最流行的两种构建工具,每种工具都有自己的一套功能和优点。Gradle 是一种现代...【详细内容】
2023-10-08  Search: Gradle  点击:(298)  评论:(0)  加入收藏
java开发人你用的maven构建还是gradle
Gradle和Maven都是Java项目构建工具,它们之间最主要的区别在于以下几点: 构建脚本语言:Maven使用XML作为构建脚本语言,而Gradle使用Groovy语言,Groovy是一种基于Java的动态语言。...【详细内容】
2023-05-16  Search: Gradle  点击:(451)  评论:(0)  加入收藏
「Gradle 进阶」史上最全的 Gradle 构建技术知识点都在这里了
Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。Android Studi...【详细内容】
2022-12-06  Search: Gradle  点击:(376)  评论:(0)  加入收藏
iOS 调试工具 + Gradle 常用命令
libimobiledevice 是什么?iOS 命令行调试工具常用命令brew install libimobiledevice 安装brew install ideviceinstallerideviceinstaller -u [udid] -i [xxx.ipa] 给指定连...【详细内容】
2022-06-21  Search: Gradle  点击:(486)  评论:(0)  加入收藏
gradle:现代高效的java构建工具
相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服: 一来Maven的配置文件是XML格式的...【详细内容】
2020-06-18  Search: Gradle  点击:(362)  评论:(0)  加入收藏
Gradle构建工具
构建工具的作用:依赖管理;测试、打包、发布;机器能干的活,绝不自己动手。主流构建工具:(1)Ant:编译、测试、打包;(2)Maven:依赖管理、发布;(3)Gradle:Groovy,具有更高的灵活性和可扩展性。Gra...【详细内容】
2019-12-04  Search: Gradle  点击:(496)  评论:(0)  加入收藏
Android开发:build.gradle 配置指南
一、前言作为Android开发,我们几乎每天都在和builg.gradle打交道,但是你真的知道build.gradle里的每一行代码有什么用吗?以及builg.gradle到底有哪些作用?本文旨在全面的向大家...【详细内容】
2019-10-08  Search: Gradle  点击:(823)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(2)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(3)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(7)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(2)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(1)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(3)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(15)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(14)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(17)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(38)  评论:(0)  加入收藏
站内最新
站内热门
站内头条