Android Gradle复制打包的apk到固定目录
fldm
9年前
来自: http://blog.csdn.net//guijiaoba/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.=========================") } }