几种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 LengthFile 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

你可能感兴趣的:(几种Android多渠道快速打包方案整理)