Android Studio在Gradle中调用cmd脚本

Gradle中调用cmd

需要在Gradle编译时,调用某些脚本进行文件操作,比如:头文件更新,或者动态链接库文件的更新等,需要借助脚本文件,并且不需要手动运行,那么如何使用Gradle呢?

如下代码可以实现在执行Gradle编译时连续运行两条命令:

 exec {
            workingDir '../'
            commandLine 'cmd', '/c', 'cmd_01.cmd && ' +  'cmd_02.cmd '+ Parameter
        }

其中:

Parameter为cmd_02.cmd的参数,连续多条命令使用 && 连接;

workingDir为基于当前脚本的相对运行路径;

AS中编写CMD

在实际开发中,时常需要编写脚本进行文件操作,现在以一个文件拷贝替换的例cmd_02.cmd子进行说明:

@echo off
rem SET YOUR LOCAL VAR:
rem  0 : debug_ver_1 \ 1 : debug_ver_2 \ 2 : release_ver_1 \ 3 : release_ver_2
set VERSION_TYPE=%1%

if %VERSION_TYPE% equ 0 (
echo 835_debug version!
goto debug_ver_1
)

if %VERSION_TYPE% equ 1 (
echo 835_release version!
goto debug_ver_2
)

if %VERSION_TYPE% equ 2 (
echo 845_debug version!
goto release_ver_1
)

if %VERSION_TYPE% equ 3 (
echo 845_release version!
goto release_ver_2
)

:debug_ver_1
xcopy %CD%\app\src\main\libs_debug\libtest_01.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
xcopy %CD%\app\src\main\libs_debug\libtest_02.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
echo all libs updated
exit /b 0

:debug_ver_2
xcopy %CD%\app\src\main\libs_debug\libtest_03.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
xcopy %CD%\app\src\main\libs_debug\libtest_04.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
echo all libs updated
exit /b 0

:release_ver_1
xcopy %CD%\app\src\main\libs_release\libtest_01.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
xcopy %CD%\app\src\main\libs_release\libtest_02.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
echo all libs updated
exit /b 0

:release_ver_2
xcopy %CD%\app\src\main\libs_release\libtest_01.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
xcopy %CD%\app\src\main\libs_release\libtest_02.so %CD%\app\src\main\cpp\testJNI\armeabi-v7a /y || goto ERROR_COPY
echo all libs updated
exit /b 0

:ERROR_COPY
echo failed to update libs
exit /b 0

其中:

set VERSION_TYPE=%1%

即表示在运行时会接受一个外部参数作为命令内的条件分支。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 12,624评论 1 19
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,892评论 25 709
  • 本来想写一篇关于前端数据驱动的文章,百度搜了一下关键词,发现有人已经写了,文章内容和我想写的差不多,顺手就转过来了...
    若邪Y阅读 5,127评论 0 3
  • 今天本来打算我店里看看,最后还是决定在家做饭请恩师吃饭。老师真正让我见识了什么叫真人,一直以为老师就是个会治瘫痪病...
    Leiwanmin阅读 1,579评论 4 2