Android Gradle Task使用详解

本文详细介绍了如何在Android项目中配置Gradle变量,包括直接定义、使用ext、读取properties文件。同时,文章还深入探讨了自定义Task的各种方式,如简单定义、使用DefaultTask、继承原有任务以及配置任务依赖。通过实例展示了如何在任务中添加操作、指定输入输出文件以及如何传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Gradle作为一个构建工具,除了插件给我们带来的task,我们也可以自定义很多变量,task,或者继承某些task来重新指定输入输出文件等。首先我们要明确一下Gradle的周期,简单来说,一个Gradle任务执行的时候会有三个步骤。

  1. Gradle会分析构建脚本,通过setting.gradle配置的项目对应生成settings与project类的实例。
  2. 初始化配置,通过执行各个项目build.gradle脚本,配置project对象的属性, 此阶段也会去创建、配置task及相关信息。
  3. 执行具体的任务,通过任务之间的依赖关系来进行一系列的任务执行。

明确了这些之后我们就了解一下task的相关使用吧。这里我们新建一个Android项目,包含一个app和一个library。
settings.gradle

include ':app', ':mylibrary'

那么我们这个项目就有了三个project实例,rootProject,app,mylibrary

配置变量
1.在gradle文件中直接定义变量

我们在app的build.gradle中末尾直接定义。

def para='123'
println para

然后我们执行
这里写图片描述
就可以看到对应的输出

15:22:36: Executing task 'assembleDebug'...

Executing tasks: [assembleDebug]

Configuration on demand is an incubating feature.
G:\program\Android\sdk\platform-tools\adb.exe
123
:app:preBuild UP-TO-DATE
:mylibrary:preBuild UP-TO-DATE
:mylibrary:preDebugBuild UP-TO-DATE
:mylibrary:checkDebugManifest UP-TO-DATE
:mylibrary:processDebugManifest UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:mylibrary:compileDebugAidl UP-TO-DATE
.....

很明显我们可以看到输出是在任务执行之前的。这就表示配置阶段就已经执行了代码。这样定义的变量只在该文件内可见

2.使用ext定义变量

同样在app的build.gradle中定义如下,同样通过gradle的窗口执行assembleDebug任务,后面如果不变就不赘述了。

ext{
    para1 ="456"
}
assert project.ext.para1=='456'
assert ext.para1=='456'

这样定义的变量可以在其他module中获取,但是必须要定义之后才行,比如这里定义在app里的,可以在mylibrary中获取,因为app的build.gralde是先执行的。
我们可以在mylibrarya中的build.gradle中获

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值