android 多渠道打包浅见

最近发现了一个新的打渠道包的项目,跟大家分享一下。packer-ng-plugin(项目地址,https://github.com/mcxiaoke/packer-ng-plugin)
如果大家没有时间,我简单的把原理讲一下,也算是自己的理解,作为写技术博客的一个小小开始。
打包,打渠道包,对于我这个埋头写界面的菜鸟是个神秘的东东,平时也很少去碰,不问究竟,知道看到这个项目。渠道包的核心是给服务器上传当前渠道的渠道号,这样就需要给每个包一个渠道配置的文件,传统的方法是利用gradle提供的productFlavors参数给manifest配置响应的渠道号,这里面每个包都需要一个认证签名的过程,所以打包过程比较慢。以笔者的项目为例,30个渠道包大概需要将近40分钟的时间,所有经常是下班前打包的话都要加班个把小时,说多都是泪啊。
packer-ng-plugin采用的是直接处理打过的包,讲渠道号存储在zpk文件的注释信息中去,这样就可以不用解包,压包再签名的过程,这个读写文件的过程非常快,所以打多个包的时间也是和一个包的时间差不多的,2分钟足够了,这样就再也不用加班了,偶也!
这个项目还有一个好处是提供Java版和Python的独立命令行脚本,不依赖Gradle插件,支持独立使用,确实是比较用心了。
这里还有几个同类的方案:
gradle-packer-plugin - 旧版渠道打包工具,完全使用Gradle系统实现,能利用Android提供的productFlavors系统的条件编译功能,无任何兼容性问题,方便集成,但是由于每次都要重新打包,速度比较慢,不适合需要大量打包的情况。(https://github.com/mcxiaoke/gradle-packer-plugin)
Meituan-MultiChannelTool - 使用美团方案的实现,在APK文件的META-INF目里增加渠道文件,打包速度也非常快,但读取时需要遍历APK文件的数据项,比较慢,而且以后可能遇到兼容性问题。(https://github.com/GavinCT/AndroidMultiChannelBuildTool)
MultiChannelPackageTool - 将渠道写入APK文件的注释,这个项目没有提供Gradle插件,只有命令行工具,不方便CI集成,使用ZIP文件注释的思路就是来自此项目(https://github.com/seven456/MultiChannelPackageTool)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值