1. 程式人生 > >Android多渠道打包彙總(六)—— 美團的多渠道打包方式

Android多渠道打包彙總(六)—— 美團的多渠道打包方式

1. 原理

大家都知道,apk檔案其實可以看做是一個壓縮包,我們把一個Android應用包當作zip檔案包進行解壓,然後發現在簽名生成的目錄下(META-INF)新增一個空檔案不需要重新簽名。利用這個機制,該檔案的檔名就是渠道名。這種方式不需要重新簽名等步驟,非常高效。

2. 打包步驟

  • 將要打包的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.一些不法的渠道商很容易通過工具修改渠道,如果一個渠道商,通過網路劫持和篡改渠道的組合方式來獲取暴利,對於程式開發者來說可能會存在著巨大的經濟損失