APK多渠道打包方案彙總

一、在Apk中的APK Signature Block區塊添加自定義的渠道信息

原理:在Apk中的APK Signature Block區塊添加自定義的渠道信息

優點:支持Android Signature V2 Scheme

https://github.com/Meituan-Dianping/walle

二、使用aapt 替換 asssets目錄的channel

優點:不用解包回包、方案通用、不依賴簽名方案

缺點:需要重新簽名

三、修改APK META-INF打包

原理:每次修改 APK META-INF

優點:速度快,不需要源代碼和簽名文件,使用簡單

缺點:沒有使用Android的productFlavors,無法利用flavors條件編譯的功能

https://github.com/MasonLiuChn/BatchPackApk

https://github.com/GavinCT/AndroidMultiChannelBuildTool

四、修改APK註釋字段打包

原理:每次修改 APK註釋字段

優點:速度快,不需要源代碼和簽名文件,使用簡單

缺點:沒有使用Android的productFlavors,無法利用flavors條件編譯的功能

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

https://github.com/seven456/MultiChannelPackageTool

五、gradle打包-manifestPlaceholders

描述:使用gradle 腳本打包

原理:批量build工程,處理 AndroidManifest.xml 文件時使用manifestPlaceholders

優點:穩定

缺點:耗時=一次build * 渠道數,需要提供源代碼和簽名文件

https://github.com/mcxiaoke/gradle-packer-plugin

六、gradle打包-hook

描述:使用gradle 腳本打包

原理:批量build工程,處理 AndroidManifest.xml 文件時添加一個鉤子(hook)替換渠道

優點:穩定

缺點:耗時=一次build * 渠道數,需要提供源代碼和簽名文件

https://github.com/umeng/umeng-muti-channel-build-tool/tree/master/Gradle

七、友盟多渠道打包工具

描述:友盟提供的圖形化打包工具

原理:方案一:每次反編譯APK,修改 AndroidManifest.xml裏的渠道號,重新打包簽名;方案二:直接編輯二進制的AndroidManifest.xml文件,重新簽名。

優點:圖形化操作、不需要源代碼、速度快

缺點:兼容性差、需要提供簽名文件

https://github.com/umeng/umeng-muti-channel-build-tool

八、Ant腳本打包

描述:這是一種比較陳舊的打包方式,記得我在2012年時是這樣用的。

原理:批量build工程,build 前修改 AndroidManifest.xml裏的渠道號。

優點:穩定

缺點:耗時=一次build * 渠道數,需要提供源代碼和簽名文件

https://github.com/MasonLiuChn/Android-Batch-Pack

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章