Ubantu Jenkins打包五 快速打渠道包
1. 渠道包生成原理
渠道包和普通包的區別:
渠道包與普通包相比,渠道相關的資訊不同,程式碼部分相同。開發和編碼的時候,渠道資訊儘可能的不要採用
硬編碼,最好的方法是將渠道配置資訊寫入AndroidManifest的meta-data,程式中通過讀取AndroidManifest的meta-data
中的資訊獲取渠道對應的渠道資訊。
這種情況下,渠道包和普通包只有AndroidManifest有差別,通過重新生成AndroidManifest,和原來的程式碼和資源重新打包
就可以生成新的渠道包。
2. 快速打渠道包原理
1)生成APK包;
2)反解析APK;
$ apktool d [apk包]
如果失敗,請採用
$ apktool d [apk包] -r
3)生成渠道包的AndroidManifest,替換反解析的AndroidManifest
替換生成渠道用的AndroidManifest
4)重新打包生成未簽名的新APK;
$ apktool b [解壓後的資料夾] -o [輸出的新APK名]
5)對新APK進行簽名
$ jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa -verbose -keystore [keystore檔案] -storepass [用於金鑰庫完整性的口令] -signedjar [輸出的簽名apk] [未簽名的apk]
6)對新簽名包進行優化(例如對齊處理)
2. 安裝APKTOOL
1)下載APKTOOL wrapper script (右鍵, 連結儲存為 apktool)
2) 下載 apktool-2 (下載地址)
下載完的apktool包重新命名為 apktool.jar
移動兩個檔案 (apktool.jar & apktool) 到 /usr/local/bin (需要root許可權)
為兩個檔案新增可執行(chmod +x)
現在就可以使用 apktool 命令了
通過apktool檢視安裝結果