Android Studio打包全攻略 (2)

优化gradle代码
刚才写的代码

productFlavors { uc { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"] } _360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"] } baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } yyb { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yyb"] } }

有些冗余,修改下减少我们的代码量

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就出来这么多包。

反编译看看,包打得对不对
命令行

apktool d xxx.apk

这里写图片描述

打开目录,首先确认我们生成的XML里面的标识符

这里写图片描述


然后看到,美团极速打包方案也完成

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgypwy.html