5 优化gradle代码
刚才写的代码
有些冗余,修改下减少我们的代码量
productFlavors { uc {} _360 {} baidu {} yyb {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }是不是美观多了
6. Gradle对新人来说语法有学习曲线,能不能再容易一点
咱们有工具啊,打开顶部Build
选择红色部分,里面的编辑框可以帮助我们更快的熟悉Gradle
来看看代码和编辑框的具体关系吧
7. 打包太多,需要清理一下
炉火纯青 恐弄快打 直接修改渠道号
想想,如果只是打渠道包的话,没有必要对整个项目进行编译,来生成渠道号。
如果能直接修改apk的渠道号,而不需要再重新签名能节省不少打包的时间。幸运的是我们找到了这种方法。直接解压apk,解压后的根目录会有一个META-INF目录。
如果在META-INF目录内添加空文件,可以不用重新签名应用。因此,通过为不同渠道的应用添加不同的空文件,可以唯一标识一个渠道。
采用这种方式,每打一个渠道包只需复制一个apk,在META-INF中添加一个使用渠道号命名的空文件即可。
这种打包方式速度非常快,900多个渠道不到一分钟就能打完。
没错,这就是美团的打包策略
使用方式:https://github.com/GavinCT/AndroidMultiChannelBuildTool
使用本工具,Android程序员仅需将ChannelUtil.java放入到工程里使用,以后打包的事情就不用自己动手了。
安装个Python环境,运行一下MultiChannelBuildTool.py,谁都可以打包了!
毕竟实践是检验真理的唯一标准:
拷贝一个,我们刚刚生成的app-uc-release.apk到项目目录
果然厉害,1S就出来这么多包。
反编译看看,包打得对不对
命令行
打开目录,首先确认我们生成的XML里面的标识符
然后看到,美团极速打包方案也完成