Android Studio自定义Gradle Task并运行
Posted 胡刚2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio自定义Gradle Task并运行相关的知识,希望对你有一定的参考价值。
一种创建并执行Gradle Task的方式
=========================================================
gradle依赖演示
创建一个config.gradle文件,并在其中定义一个task
选择一个gradle文件,比如build.gradle,注释掉所有原来的代码,并写入下面的内容,然后执行build.gradle中创建的task,发现先执行apply from中定义的task
========================================================
实现一个Task,执行它能创建文件,并填充文件内容
class MyTask_Input_Output extends DefaultTask
@Input
@Optional //表示这个属性可选,不必在初始化这个类的时候传入这个参数
String input
@OutputFile
@Optional
File output
MyTask_Input_Output()
group "自定义任务"
@TaskAction
void action()
// println "==================================="
// println input
println output
// println "==================================="
println inputs.files.singleFile
def inFile = inputs.files.singleFile
def file = outputs.files.singleFile
file.createNewFile() //创建test.txt文件
file.text = inFile.text //填充test.txt文件的内容为build.gradle文件中的内容
tasks.create("myTask_Input_Output", MyTask_Input_Output)
// input = "a/b/c"
output = file("test.txt") //在当前目录定义一个文件,注意是定义不是创建
inputs.file file('build.gradle')
outputs.file file('test.txt')
=========================================================
实现一个Task,使它能将build/outputs文件夹下的所有文件压缩为zip文件,并将压缩后的zip文件放到build/custom文件夹下
//将app/build/outputs下的文件全部压缩成output.zip文件,并且将output.zip文件放到app/build/custom下
task zip2(type: Zip)
println buildDir
archiveName "output.zip"
destinationDir file("$buildDir/custom")
from "$buildDir/outputs"
=========================================================
实现一个task,将debug apk再次压缩成zip文件,存放到另一个目录
//将生成的debug apk,重新压缩成output2.zip文件,并且将output.zip文件放到app/build/custom下
afterEvaluate //afterEvaluate这个task是等所有的task执行完后才执行,也就是说此时肯定打包完了
println "============================"
println tasks.getByName("packageDebug")
task zip3(type: Zip)
println buildDir
archiveName "output2.zip"
destinationDir file("$buildDir/custom")
from tasks.getByName("packageDebug").outputs.files
tasks.getByName("packageDebug").outputs.files.each
println it
以上是关于Android Studio自定义Gradle Task并运行的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件自定义 Gradle 任务 ① ( Gradle 面板显示任务列表 | 自定义任务生成与显示分组 )
Android Gradle 插件自定义 Gradle 任务 ④ ( Task#doLast 函数用法 | 自定义 Gradle 任务代码示例 )
Android Gradle 插件自定义 Gradle 任务 ④ ( Task#doLast 函数用法 | 自定义 Gradle 任务代码示例 )
Android Gradle 插件自定义 Gradle 任务 ① ( Gradle 面板显示任务列表 | 自定义任务生成与显示分组 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )