生成重命名包
在生成渠道包后,包的命名通常是默认命名,即app-渠道名-buildType.apk。但是通常情况下,项目经理都会要求对包进行重命名,以满足市场部的需求。那么这时候就可以通过Gradle脚本进行快速重命名,而不需要再使用rename指令或者Python脚本进行修改,代码如下所示。
- applicationVariants.all { variant ->
- variant.outputs.each { output ->
- if (output.outputFile != null &&
- output.outputFile.name.endsWith('.apk') &&
- 'release'.equals(variant.buildType.name)) {
- def apkFile = new File(output.outputFile.getParent(),
- "XYSApp_${variant.flavorName}_ver${variant.versionName}.apk")
- output.outputFile = apkFile
- }
- }
- }
将这段脚本放到android领域中即可,当执行gradle build指令时该task也会执行,那么这段脚本是何含义呢?其实与多渠道优化的那段代码非常类似,它取出了所有的生成的apk包,并判断其文件是否是apk、是否是release版本。如果是,则重新将其命名为“XYSApp_渠道名_ver版本号.apk”。代码其实非常简单,但难就难在对groovy语言的理解和gradle android插件的熟悉程度上。很多系统变量和内置变量,对于初学者都比较陌生,但当看得多了,自然就会记住了。
利用上面的脚本,可以将所有的release版本的apk文件进行重命名,效果如图4.18所示。
图4.18 渠道包的重命名
多渠道打包是项目开发中一个非常重要的部分,通常会在一个专门的打包服务器上进行。对于一些比较成熟的团队来说,甚至会开发一些界面进行打包的配置工作。
