『壹』 (五)Android多渠道打包:美團多渠道打包原理以及使用
1.傳統打包:
傳統的打包方法都是在AndroidManifest添加渠道標示,每打一次包修改一次標示的名稱。效率特別的低,一個稍微大一點的項目打上幾十個渠道包可能需要幾個小時半天的時間。
2.由於傳統的打包方式每次修改渠道都需要重新的構建項目,時間都浪費構建上面了,美團提供了一種新的打包方案:
Android應用使用的APK文件就是一個帶簽名信息的ZIP文件,根據 ZIP文件格式規范,每個ZIP文件的最後都必須有一個叫 Central Directory Record 的部分,這個CDR的最後部分叫」end of central directory record」,這一部分包含一些元數據,它的末尾是ZIP文件的注釋。注釋包含Comment Length和File Comment兩個欄位,前者表示注釋內容的長度,後者是注釋的內容,正確修改這一部分不會對ZIP文件造成破壞,利用這個欄位,我們可以添加一些自定義的數據,Packer-Ng方式打包就是在這里添加和讀取渠道信息。打包神器,100個渠道包只需5s 哈哈 。
原理很簡單,就是將渠道信息存放在APK文件的注釋欄位中。
第一步:直接將PackerNg作為Utils拷貝到項目中。
第二步:創建一個保存渠道包名的txt文件,可以放在項目主目錄下:比如命名market.txt
渠道名可以按照需求隨便添加
an
huawei
legend
letv
meizu
oppo
qq
PC
sougou
UC
update
update1
vivo
wandoujia
woshangdian
xiaomi
第三步:ChannelUtil這個工具類是用於取出文件里的渠道名
第四步:打開第二步中的PackerNg類,首先配置一下此類main函數中接受的參數信息。本事例通過Android Studio的方式進行配置直接上圖:
圖中標注3的位置就是PackerNg類配置main函數中接受的兩個參數: 第一個參數為默認的release包的apk源文件,包名為ChannelUtil起初默認的包名
拿到這個包名可以傳給後台進行統計或進行其它的操作。
第六步:運行PackerNg類,會在項目目錄下自動生成文件夾apks(在PackerNg.java文件中配置好的apk渠道包存儲路徑)
注意點:第四步中ChannelUtil起初默認的包名為源文件,其它所有的的渠道包都是通過PackerNg打包方式都是以這個源文件為模版,進行復制,將不同的渠道名復制給這個源文件。如果是360渠道上線的話需要將這個包名默認改為360的渠道單獨打包,因為360上線需要加固,會把之前通過源文件復制渠道名給抹掉,所以對於360加固的文件需要單獨把360作為源文件來打包不改為360默認的渠道包後會統計不到360渠道的信息。
『貳』 如何將一個完整的Android工程打包成jar包
將一個完整的Android工程打包成jar包步驟:
1、右鍵工程--->Export
2、點擊Java--->JAR file---->Next如下圖
3、勾選src包即可,其他項不選
4、點擊finishi即可,在D盤就可以看到library的jar包
5、其他應用程序引用就可以