Android Gradle复制打包的apk到固定目录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xia215266092/article/details/42655437

最近项目开发工具由原先的Eclipse转移到Android Studio,原先的打包工具由ant转化到gradle。

原先写过用python重名多渠道打包的apk,现在由于使用的时Android Studio,项目编译使用的时Gradle,同事Gradle是基于Groovy的,反正也是一种类似Pythong的脚本语言。

这个语言是基于Jvm的,就是说,你开发的Java程序完全可以在这个上面跑,同时可以在gradle中编写Java代码。


项目中apk编译生成的apk存放的目录在

${Project}/app/build/outputs/apk

中,而且我使用还是mac系统,在Android studio中完全看不到这个目录,每次去获取apk的时候,非常麻烦,所以我写了下面的脚本,自动复制和重名生成的apk。

命名格式如下所示,

 // eg: org.liushui.test_v1.0.20_20150107151516_realse_site.apk

String appName = String.format("%s_v%s_%s_%s_%s.apk", applicationId, versionName, time, buildType, channel);


如果你会Java的话,那么上面的代码则是很容理解的。

下面是主要的脚本,放到${Project}/app/build.grale中即可。

apply plugin: 'com.android.application'


android {
    // ***
}

dependencies {
    // *****
}
/// **********************下面的代码才是最主要的*************************
build {
    doLast {
        def fileName = "app-release.apk"
        def fromFile = "./build/outputs/apk/" + fileName
        def intoFile = "./outapks/"


        def applicationId = android.defaultConfig.applicationId
        def versionName = android.defaultConfig.versionName
        def time = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date())
        def buildType = "realse"
        def channel = "site"


        def appName = "${applicationId}_v${versionName}_${time}_${buildType}_${channel}.apk"


        // copy --> rename
        copy {
            from fromFile
            into intoFile


            rename {
                appName
            }
        }


        println("=====================build.doLast success.=========================")
    }
}


展开阅读全文

没有更多推荐了,返回首页