美文网首页
Android Studio在Gradle中调用cmd脚本

Android Studio在Gradle中调用cmd脚本

作者: chengjian666 | 来源:发表于2018-03-22 13:49 被阅读432次

    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%
    

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

    相关文章

      网友评论

          本文标题:Android Studio在Gradle中调用cmd脚本

          本文链接:https://www.haomeiwen.com/subject/qtdaqftx.html