Android build.gradle执行zip,copy命令

创建一个执行copy命令的任务:

task  copySoFileTask(type: Exec, description: '复制so文件'){
    println("copySoFileTask..........")
    workingDir  "${rootDir}"
    def copyCommond = [
            'cmd',"/c",'copy',"\"AiGuiNative\\build\\intermediates\\cmake\\debug\\obj\\arm64-v8a\\libAiGuiNative.so\"",
            "\"src\\main\\cpp\\finalpackage3_arm64\\lib64\\\""
    ]
    commandLine  copyCommond
}

创建一个执行bat脚本的命令任务

task  zipSoFileTask(type: Exec, description: '编译前压缩资源'){
    println("zip boostrap..........")
    workingDir  'src\\main\\cpp'
    def myCommond = [
            'cmd',"/c",'zip.bat'
    ]
    commandLine  myCommond
}

让该任务在编译之前执行
注意下面的设置在apply plugin: 'com.android.library’有效

buildTypes {
        release {
            libraryVariants.all { variant ->
variant.javaCompileProvider.get().dependsOn(zipSoFileTask)
zipSoFileTask.dependsOn(copySoFileTask)	//zip压缩前先执行copy任务
            }

        }
    }

apply plugin: 'com.android.application’下的设置如下:

android.applicationVariants.all {
        variant ->
            variant.outputs.all {
                //在这里修改apk文件名
                outputFileName = "AiCoding-v${variant.versionName}.apk"
            }
       variant.javaCompileProvider.get().dependsOn(zipSoFileTask)
    }

zip.bat脚本内容

del bootstrap-aarch64.zip
WinRAR a -r -ep1 bootstrap-aarch64.zip finalpackage3_arm64/*

命令行使用WinRAR 程序的时候要加PATH变量:
C:\Program Files\WinRAR

构建前开始执行zip:
在这里插入图片描述还可以在settings.gradle中添加一个监听器,在需要的构建阶段执行相应操作:

gradle.addBuildListener(new BuildListener() {
    @Override
    void buildStarted(Gradle gradle) {
        println("buildStarted------------")
    }

    @Override
    void settingsEvaluated(Settings settings) {
        println("settingsEvaluated------------")
    }

    @Override
    void projectsLoaded(Gradle gradle) {
        println("projectsLoaded------------")
    }

    @Override
    void projectsEvaluated(Gradle gradle) {
        println("projectsEvaluated------------")
    }

    @Override
    void buildFinished(BuildResult result) {
        println("buildFinished------------")
    }
})

Gradle执行顺序和task

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值