几种Android多渠道快速打包方案整理
推荐方案:Packer-Ng
-
GitHab | packer-ng-plugin
这是PackerNg官方文档,里边有源码实现。 -
下一代Android渠道打包工具 - 非著名程序员
这是非著名程序员分享PackerNg打包的实现原理:
Android应用使用的APK文件就是一个带签名信息的ZIP文件,根据 ZIP文件格式规范,每个ZIP文件的最后都必须有一个叫 Central Directory Record 的部分,这个CDR的最后部分叫"end of central directory record",这一部分包含一些元数据,它的末尾是ZIP文件的注释。注释包含Comment Length和File Comment两个字段,前者表示注释内容的长度,后者是注释的内容,正确修改这一部分不会对ZIP文件造成破坏,利用这个字段,我们可以添加一些自定义的数据,PackerNg项目就是在这里添加和读取渠道信息。
-
packer-ng-plugin(快速打包神器)初略使用
这是一位博主按步骤实践了打包过程,需要注意:是否需要禁用V2版签名模式:
同时满足下面两个条件才需要此配置:
// 1. Gradle版本 >= 2.14.1
// 2. Android Gradle Plugin 版本 >= 2.2.0
// 作用是只使用旧版签名,禁用V2版签名模式
v2SigningEnabled false
Why?
为了提高Android系统的安全性,Google从Android 7.0开始增加一种新的增强签名模式,从Android Gradle Plugin 2.2.0开始,构建系统在打包应用后签名时默认使用APK signature scheme v2,该模式在原有的签名模式上,增加校验APK的SHA256哈希值,如果签名后对APK作了任何修改,安装时会校验失败,提示没有签名无法安装,使用本工具修改的APK会无法安装,解决办法是在 signingConfigs里增加 v2SigningEnabled false ,禁用新版签名模式,技术细节请看官方文档:APK signature scheme v2
-
Android渠道打包工具packer-ng-plugin
这篇文章对Packer-Ng修改渠道的原理进行了解析。
其他打包工具参考
-
Android Gradle Plugin(传统方案)
Android Studio 使用Gradle多渠道打包 -
美团多渠道打包
美团多渠道打包方案详解
美团Android自动化之旅—生成渠道包 -
ApkMultiChannelPlugin
ApkMultiChannelPlugin -
ApkChannelPackage
ApkChannelPackage|android新一代多渠道打包神器
GitHub:ApkChannelPackage