新一代android渠道打包工具:1000个渠道包只需要5秒

author author     2023-02-18     179

关键词:

参考技术A ♥♥♥  原文转自 极分享 更多详情及更新 查看原文   ♥♥♥

最新版本

v1.0.4 - 2016.01.19 - 完善获取APK路径的方法,增加MarketInfo

v1.0.3 - 2016.01.14 - 增加缓存,新增ResUtils,更有好的错误提示

v1.0.2 - 2015.12.04 - 兼容productFlavors,完善异常处理

v1.0.1 - 2015.12.01 - 如果没有读取到渠道,默认返回空字符串

v1.0.0 - 2015.11.30 - 增加Java和Python打包脚本,增加文档

v0.9.9 - 2015.11.26 - 测试版发布,支持全新的极速打包方式

源码:https://github.com/mcxiaoke/packer-ng-plugin

项目介绍

packer-ng-plugin 是下一代Android渠道打包工具Gradle插件,支持极速打包,1000个渠道包只需要5秒钟,速度是 gradle-packer-plugin 的1000倍以上,可方便的用于CI系统集成,支持自定义输出目录和最终APK文件名,依赖包:com.mcxiaoke.gradle:packer-ng:1.0.+ 简短名:packer,可以在项目的 build.gradle 中指定使用,还提供了命令行独立使用的Java和Python脚本。实现原理见本文末尾。

使用指南

Maven Central

.

.

.

.

.

实现原理

PackerNg原理  

优点

使用APK注释字段保存渠道信息和MAGIC字节,从文件末尾读取渠道信息,速度快

实现为一个Gradle Plugin,支持定制输出APK的文件名等信息,方便CI集成

提供Java版和Python的独立命令行脚本,不依赖Gradle插件,支持独立使用

由于打包速度极快,单个包只需要5毫秒左右,可用于网站后台动态生成渠道包

缺点

没有使用Android的productFlavors,无法利用flavors条件编译的功能

文件格式

Android应用使用的APK文件就是一个带签名信息的ZIP文件,根据 ZIP文件格式规范,每个ZIP文件的最后都必须有一个叫Central Directory Record 的部分,这个CDR的最后部分叫"end of central directory record",这一部分包含一些元数据,它的末尾是ZIP文件的注释。注释包含Comment Length和File Comment两个字段,前者表示注释内容的长度,后者是注释的内容,正确修改这一部分不会对ZIP文件造成破坏,利用这个字段,我们可以添加一些自定义的数据,PackerNg项目就是在这里添加和读取渠道信息。

细节处理

原理很简单,就是将渠道信息存放在APK文件的注释字段中,但是实现起来遇到不少坑,测试了好多次。

同类工具

gradle-packer-plugin - 旧版渠道打包工具,完全使用Gradle系统实现,能利用Android提供的productFlavors系统的条件编译功能,无任何兼容性问题,方便集成,但是由于每次都要重新打包,速度比较慢,不适合需要大量打包的情况。(性能:200个渠道包需要一到两小时)

Meituan-MultiChannelTool - 使用美团方案的实现,在APK文件的META-INF目里增加渠道文件,打包速度也非常快,但读取时需要遍历APK文件的数据项,比较慢,而且以后可能遇到兼容性问题

MultiChannelPackageTool - 将渠道写入APK文件的注释,这个项目没有提供Gradle插件,只有命令行工具,不方便CI集成,使用ZIP文件注释的思路就是来自此项目

转自 极分享     阅读原文

android新一代多渠道打包神器

作者:李涛ApkChannelPackage是一种快速多渠道打包工具,同时支持基于V1签名和V2签名进行多渠道打包。插件本身会自动检测Apk使用的签名方法,并选择合适的多渠道打包方式,对使用者来说完全透明。概述众所周知,因为国内Androi... 查看详情

android新一代多渠道打包神器

关于作者:李涛,腾讯Android工程师,14年加入腾讯SNG增值产品部,期间主要负责手Q动漫、企鹅电竞等项目的功能开发和技术优化。业务时间喜欢折腾新技术,写一些技术文章,个人技术博客:www.ltlovezh.com。ApkChannelPackage是一种... 查看详情

便捷的渠道统计方案,免打包渠道(代码片段)

...免打包渠道统计是相对于传统的渠道统计来说的,尤其是Android的多渠道打包。做 查看详情

拒绝多渠道打包,一招解放android工程师!

完全省去安卓工程师制作渠道包时间(每次升级只须向渠道管理人员提供一个母包即可),同时也节省渠道管理人员时间,并且提供了丰富、实时报表和实时排重、自定义事件统计等功能的创新渠道包制作工具,而且是免费的。... 查看详情

androidqa专用,python实现不一样的多渠道打包工具(代码片段)

...了Gradle的多渠道打包,目前最流行的应该是美团(美团Android自动化之旅—生成渠道包、美团Android自动化之旅—适配渠道包、Walle)使用Python直接添加渠道文件的打包方式了,速度真是杠杠的!但是,这里有一个问题&... 查看详情

android--------gradle多渠道打包(代码片段)

由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计... 查看详情

推荐这是我用过最精简的app多渠道打包工具(代码片段)

Android应用市场存在大大小小几百个商店(一个商店就代表一个渠道,比如:360手机助手、小米应用市场、华为应用市场、三星应用市场),每当App需要发布新版本时,我们就需要重新分发一遍每一个应用市场,渠道包就是在APK... 查看详情

巧用openinstall,告别多渠道打包

...。现在市场上至少有十余家主流安卓应用市场,这意味着Android工程师至少需要打十几个包,在较少渠道的时候还能应付得过来,但在面对上千个渠道的时候,还需要再打上千个包,效率自然非常的低,甚至还有被抓包的可能,... 查看详情

android福利:app渠道打包的最佳攻略

概述众所周知,由于国内Android应用分发市场的众多,我们在发布App时,一般需要生成多个渠道包,上传到不同的应用市场。这些渠道包需要携带不同的渠道信息,当App和后台交互或者数据上报时,会带上各自的渠道信息。这样... 查看详情

android--------多渠道打包(借助友盟移动统计分析)(代码片段)

好久没有发博客了,原因是换工作了,今天端午假期,所以来发一篇博客,多渠道打包,借助友盟移动统计分析,希望对各位有所帮助 多渠道打包的理解:渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的... 查看详情

android几种常见的多渠道(批量)打包方式介绍(代码片段)

2018.05.18编辑,由于谷歌对v2签名方式的要求,所以现在用新一代打包方式比较方便: https://blog.csdn.net/u011733020/article/details/79764516---------------------------------------------------------------------------- 查看详情

androidstudio系列教程六--gradle多渠道打包

由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计... 查看详情

android——利用gradle实现多渠道打包并自定义包名(umeng多渠道)

1.首先在mainfest.xml文件中,给umeng_channel设置一个变量“${UMENG_CHANNEL_VALUE}”2.在gradle中,配置flavors。productFlavors{yingyongbao{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_txyyb"]}s360{manifestPlaceholders=[UMEN 查看详情

androidqa专用,python实现不一样的多渠道打包工具(代码片段)

...了Gradle的多渠道打包,目前最流行的应该是美团(美团Android自动化之旅—生成渠道包、美团Android自动化之旅—适配渠道包、Walle)使用Python直接添加渠道文件的打包方式了,速度真是杠杠的!但是,这里有一个问题&... 查看详情

android多渠道批量打包

如若感觉排版不舒服,请移步Android多渠道批量打包1、为什么要进行多渠道打包?  安卓应用商店(一个商店也叫做一个渠道,如豌豆荚,360手机助手,应用宝)众多,大大小小几百个,每当我们发新版本时,需要将Android客户... 查看详情

android多渠道批量打包

如若感觉排版不舒服,请移步Android多渠道批量打包1、为什么要进行多渠道打包?  安卓应用商店(一个商店也叫做一个渠道,如豌豆荚,360手机助手,应用宝)众多。大大小小几百个,每当我们发新版本号时。须要将Androidcli... 查看详情

app页面上的数据如何追踪和统计的?现成的工具都有哪些?

参考技术A1.Android渠道追踪方法众所周知GooglePlay无法在中国使用,所以国内Android市场被数十家应用商店(豌豆荚、百度助手、酷市场、360手机助手等等)占领,Android渠道追踪主要围绕上述渠道展开。方法1:每个渠道打渠道包具... 查看详情

借腾讯开源vasdolly,谈谈android签名和多渠道打包的原理!(代码片段)

...于我们做数据分析。前几天,企鹅电竞团队开源了自己的AndroidApk多渠道打包工具:VasDolly,比美团的Walle更全面一些。正好借这个机会,来讲解一下Android的不同版本的签名机制的差异。二、Android的 查看详情