1. 原理
大家都知道,apk文件其實可以看做是一個壓縮包,我們把一個Android應用包當作zip文件包進行解壓,然后發現在簽名生成的目錄下(META-INF)添加一個空文件不需要重新簽名。利用這個機制,該文件的文件名就是渠道名。這種方式不需要重新簽名等步驟,非常高效。
2. 打包步驟
先從github上下載打包需要的工具,里面也有詳細的使用方法介紹
https://github.com/GavinCT/AndroidMultiChannelBuildTool-
將要打包的apk放到PythonTool中,工程目錄如下
image.png 在PythonTool/info/channel.txt中寫入需要的渠道,一個渠道占一行
雙擊執行PythonTool/MultiChannelBuildTool.py文件(需要有Python環境),或者使用命令行運行Python文件,就會生成渠道包,output目錄下就是生成的各個渠道包
image.png
image.png
- 獲取渠道信息:將JavaUtil文件下的ChannelUtil.java拷貝到工程,調用ChannelUtil.getChannel即可獲取渠道
3. 優缺點
優點:
這種打包方式速度非常快,900多個渠道不到一分鐘就能打完
缺點:
1.google如果哪天更改打包規則,使得在META-INF中建立空文件還需要重新打包,這種方式將不可用
2.一些不法的渠道商很容易通過工具修改渠道,如果一個渠道商,通過網絡劫持和篡改渠道的組合方式來獲取暴利,對于程序開發者來說可能會存在著巨大的經濟損失