Android多渠道打包:Tencent/VasDolly多渠道打包原理以及使用

VasDolly是一種快速多渠道打包工具,同時支持基于V1簽名和V2簽名進行多渠道打包。插件本身會自動檢測Apk使用的簽名類別,并選擇合適的多渠道打包方式,對使用者來說完全透明。 V1.1.6版本已支持Android Gradle Plugin 3.0,歡迎使用!

目前Gradle Plugin 2.2以上默認開啟V2簽名,所以如果想關閉V2簽名,可將下面的v2SigningEnabled設置為false。
可以參考官網gitHub:# Tencent/VasDolly

簡單總結整理:
在根工程的build.gradle中,添加對打包Plugin的依賴:

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.leon.channel:plugin:2.0.1'
}

引用VasDolly Plugin
在主App工程的build.gradle中,添加對VasDolly Plugin的引用:
apply plugin: 'channel'

添加對VasDolly helper類庫的依賴
在主App工程的build.gradle中,添加讀取渠道信息的helper類庫依賴:

dependencies {
   api 'com.leon.channel:helper:2.0.1'
}

配置渠道列表

目前有兩種方式配置渠道列表,最終的渠道列表是兩者的累加之和:

在gradle.properties文件指定渠道文件名稱,該渠道文件必須位于根工程目錄下,一行一個渠道信息。
channel_file=channel.txt
在channel或者rebuildChannel屬性中通過channelFile屬性指定渠道文件,一行一個渠道信息。
channel{
//指定渠道文件
channelFile = file("/Users/leon/Downloads/testChannel.txt")
}
rebuildChannel{
//指定渠道文件
channelFile = file("/Users/leon/Downloads/testReChannel.txt")
}

根據已有基礎包重新生成多渠道包
若是根據已有基礎包重新生成多渠道包,首先要配置渠道文件、基礎包的路徑和渠道包的輸出目錄:

rebuildChannel {
  //指定渠道文件
  channelFile = file("/Users/leon/Downloads/testReChannel.txt")
  baseDebugApk = 已有Debug APK    
  baseReleaseApk = 已有Release APK
  //默認為new File(project.buildDir, "rebuildChannel/debug")
  debugOutputDir = Debug渠道包輸出目錄   
  //默認為new File(project.buildDir, "rebuildChannel/release")
  releaseOutputDir = Release渠道包輸出目錄
  //快速模式:生成渠道包時不進行校驗(速度可以提升10倍以上,默認為false)
  isFastMode = false
  //低內存模式(僅針對V2簽名,默認為false):只把簽名塊、中央目錄和EOCD讀取到內存,不把最大頭的內容塊讀取到內存,在手機上合成APK時,可以使用該模式
  lowMemory = false
}

然后,通過Android Studio的teiminal命令行輸入gradle rebuildChannel命令生成多渠道包。

重要補充 通過命令行生成渠道包、讀取渠道信息、特別對于類似于360加固后的包損失簽名的情況方法是先進行加固然后通過命令行進行添加渠道包具體命令如下:

VasDolly命令行

命令行工具即:jar文件下VasDolly.jar,可以通過help查看具體命令:
執(zhí)行目錄在VasDolly.jar所在的目錄下執(zhí)行以下命令
VasDolly.jar下載地址https://download.csdn.net/download/yshr1991/10810763

目前支持以下操作:

獲取指定APK的簽名方式

java -jar VasDolly.jar get -s /home/user/test.apk

獲取指定APK的渠道信息

java -jar VasDolly.jar get -c /home/user/test.apk

刪除指定APK的渠道信息

java -jar VasDolly.jar remove -c /home/user/test.apk

通過指定渠道字符串添加渠道信息

java -jar VasDolly.jar put -c "channel1,channel2" /home/user/base.apk /home/user/

通過指定渠道文件添加渠道信息

java -jar VasDolly.jar put -c channel.txt /home/user/base.apk /home/user/

為基于V1的多渠道打包添加了多線程支持,滿足渠道較多的使用場景

java -jar VasDolly.jar put -mtc channel.txt /home/user/base.apk /home/user/

提供了FastMode,生成渠道包時不進行強校驗,速度可提升10倍以上

java -jar VasDolly.jar put -c channel.txt -f /home/user/base.apk /home/user/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 關于作者: 李濤,騰訊Android工程師,14年加入騰訊SNG增值產品部,期間主要負責手Q動漫、企鵝電競等項目的...
    稻草人_3e17閱讀 3,893評論 0 10
  • 目錄一、Python打包及優(yōu)化(美團多渠道打包)二、Gradle打包三、其他打包方案:修改Zip文件的commen...
    守望君閱讀 5,931評論 4 17
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評論 25 709
  • 文/楊楊楊小米粒 “重新喜歡就是一瞬間的事??!” 當我聽到這句話的時候,不知道為什么突然有一種很感動很感動的感覺,...
    臟辮姑娘閱讀 589評論 0 2
  • 黃昏來臨 云在集聚 風在催促 我們的腳步繁密 天空的色塊凝固 大塊的深灰降落 降落在港灣 我們停下吧 和挨挨擠擠的...
    壹貳閱讀 259評論 0 0

友情鏈接更多精彩內容