Android Studio自定义Gradle Task并运行

推荐文章:https://blog.csdn.net/chennai1101/article/details/103280304

一种创建并执行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
        }
    }
}

在这里插入图片描述

=========================================================
Gradle的钩子函数

//初始化阶段的两个钩子函数:
gradle.projectsLoaded
gradle.settingsEvaluated

以上两个钩子函数只能在setting.gradle文件中使用

//初始化阶段
gradle.projectsLoaded{
    println "============== projectsLoaded =============="
}

gradle.settingsEvaluated {
    println "============== settingsEvaluated =============="
}

注意,在setting.gradle文件中配置好上面的代码后,需要点击build->Rebuild才能执行
在这里插入图片描述
除了上面两个钩子函数外,还有

gradle.beforeProject
gradle.afterProject
gradle.taskGraph.whenReady

gradle插件
二进制写法:

//在app/build.gradle写入下面内容
class MyTask implements Plugin<Project> {

    @Override
    void apply(Project project) {
        println "======== MyTask apply ========"
    }
}

apply plugin:MyTask

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要卸载并重新安装 Gradle,您可以按照以下步骤进行操作: 1. 打开 Android Studio,并在顶部工具栏中选择 "File" -> "Settings"(或 "Preferences")。 2. 在弹出的设置窗口中,找到左侧导航栏中的 "Build, Execution, Deployment"选项,展开它并选择 "Gradle"。 3. 在右侧窗格中,您将看到 "Gradle settings" 区域。在此区域中,找到 "Gradle home" 字段,并记录下当前 Gradle 的安装路径。 4. 关闭 Android Studio。 5. 使用文件资源管理器或命令行,进入记录下的 Gradle 安装路径。 6. 删除 Gradle 安装目录下的所有文件和文件夹。请确保您只删除 Gradle 相关的文件,而不是其他重要文件。 7. 打开浏览器,并前往 Gradle 官方网站(https://gradle.org/releases/)。 8. 在网站上找到适合您的操作系统的最新 Gradle 版本,并下载它。 9. 下载完成后,解压缩下载的 Gradle 压缩包。 10. 将解压缩后的 Gradle 文件夹复制到您想要安装 Gradle 的位置。 11. 打开 Android Studio,并在顶部工具栏中选择 "File" -> "Settings"(或 "Preferences")。 12. 找到 "Gradle" 设置页面,然后在 "Gradle home" 字段中输入新安装的 Gradle 路径。 13. 点击 "Apply" 或 "OK"保存更改。 现在,您已经成功卸载并重新安装了 GradleAndroid Studio 将开始使用新安装的 Gradle 版本进行构建。如果您的项目有任何特定的 Gradle 配置,请确保将其添加回项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值