ANDROID多渠道快速打包实践
2016-09-12 本文已影响145人
凌空御风
参考资料:
美团Android自动化之旅—生成渠道包
Android批量打包提速
AndroidMultiChannelBuildTool
背景
随着发版需要,每次发版所需渠道包越来越多(现在差不多有一百个左右了),正常gradle打包由于耗时效率过低已无法满足需求,开始了android多渠道快速打包实践。
方法
下面主要介绍两种快速打包的方式:
1、类似美团的方式,在META-INF中写入渠道名的空文件,用于读取空文件。美团Android自动化之旅—生成渠道包
2、在apk末尾动态写入渠道信息。一种动态为apk写入信息的方案
其实这两种方式都是同一个原理,替换以前从manifest中读取渠道号的方式,而使用新的获取方式(渠道号如何写入就如何读取)。
所以这首先需要客户端(重要!):
1、统一应用中获取渠道的方式并替换之前的(最好兼容)。
2、注意第三方SDK渠道号的传入,比如友盟sdk,否则第三方会使用默认从manifest中读取的方式。
下面介绍一种已经测试过的方法(git上开源项目AndroidMultiChannelBuildTool)
1、安装环境由于脚本环境是使用python语言,所以需要我们安装环境。
2、导入项目导入开源项目AndroidMultiChannelBuildTool),并把想要批量打包的apk文件拷贝到PythonTool目录下(与py同级),运行py脚本即可打包完成。
以上基本实现快速打包,经过测试一分钟百十个无压力。另外需要注意这种方式只适用于打包需求一致渠道号不同,不适用特殊定制渠道。
备注:9月21日补充快速打包java版本,详见AndroidMultiChannelBuildTool-Java-master