精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

VasDolly服務端打渠道包教程

開發 前端
addChannelByV2 方法的 apkFile 參數是母包文件,channel 參數是需要打包的渠道名稱,lowMemory 參數是 V2 簽名打渠道包提供的參數,默認為 false。該方法會直接將我們傳入的 apkFile 母包修改成 V2 簽名的渠道包。如此一來,我們就獲得了我們需要的渠道包了。

本文我將給大家介紹一個 apk 打包工具 VasDolly 的使用介紹、原理以及如何在服務端接入 VasDolly 進行服務端打渠道包操作。

使用介紹

圖片圖片

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

項目地址:https://github.com/Tencent/VasDolly

項目構建方式:gradle

VasDolly 官方對于 VasDolly 的定位是安卓端多渠道打包工具,由安卓開發接入安卓項目中使用。VasDolly 官方還提供了 jar 包工具通過命令行方式進行打包操作。

在安卓項目中要使用 VasDolly,你需要先在你的項目中添加對 VasDolly 插件和 helper 類庫的依賴。具體步驟如下:

  • 在根工程的 build.gradle 中,添加對打包插件的依賴:
dependencies {
    classpath 'com.android.tools.build:gradle:7.0.3'classpath 'com.tencent.vasdolly:plugin:3.0.6'
}
  • 在主 App 工程的 build.gradle 中,添加對 VasDolly 插件的引用:
apply plugin: 'com.tencent.vasdolly'
  • 在主 App 工程的 build.gradle 中,添加讀取渠道信息的 helper 類庫依賴:
dependencies {
    api 'com.tencent.vasdolly:helper:3.0.6'
}
  • 配置渠道列表。你可以通過兩種方式配置渠道列表,一種是在 gradle.properties 文件中指定渠道文件名稱,該渠道文件必須位于根工程目錄下,一行一個渠道信息。例如:
channel_file=channel.txt

其中 channel.txt 文件內容如下:

yingyongbao
gamecenter
xiaomi
huawei
oppo
vivo

另一種方式是在 channel 或者 rebuildChannel 屬性中通過 channelFile 屬性指定渠道文件,一行一個渠道信息。例如:

channel {
    //指定渠道文件
    channelFile = file("/Users/leon/Downloads/testChannel.txt")
}
  • 通過 Gradle 生成多渠道包。你可以選擇直接編譯生成多渠道包,或者根據已有基礎包重新生成多渠道包。如果你選擇直接編譯生成多渠道包,你需要配置渠道文件、渠道包的輸出目錄和渠道包的命名規則。例如:
channel {
    //指定渠道文件
    channelFile = file("/Users/leon/Downloads/testChannel.txt")
    //多渠道包的輸出目錄,默認為new File (project.buildDir,"channel")
    outputDir = new File(project.buildDir,"xxx")
    //多渠道包的命名規則,默認為:$ {appName}-$ {versionName}-$ {versionCode}-$ {flavorName}-$ {buildType}-$ {buildTime}
    apkNameFormat ='$ {appName}-$ {versionName}-$ {versionCode}-$ {flavorName}-$ {buildType}'//快速模式:生成渠道包時不進行校驗(速度可以提升10倍以上,默認為false)
    fastMode = false//buildTime的時間格式,默認格式:yyyyMMdd-HHmmss
    buildTimeDateFormat = 'yyyyMMdd-HH:mm:ss'//低內存模式(僅針對V2簽名,默認為false):只把簽名塊、中央目錄和EOCD讀取到內存,不把最大頭的內容塊讀取到內存,在手機上合成APK時,可以使用該模式
    lowMemory = false
}

然后,通過 gradle channelDebug 或 gradle channelRelease 命令分別生成 Debug 和 Release 的多渠道包。如果你選擇根據已有基礎包重新生成多渠道包,你需要配置渠道文件、基礎包的路徑和渠道包的輸出目錄。例如:

rebuildChannel {
    //指定渠道文件
    channelFile = file("/Users/leon/Downloads/testReChannel.txt")
    // 已有APK文件地址(必填),如new File (project.rootDir, "/baseApk/app_base.apk"),文件名中的base將被替換為渠道名
    baseApk = new File (project.rootDir, "/baseApk/app_base.apk")
    //默認為new File (project.buildDir, "rebuildChannel")
    outputDir = new File(project.buildDir,"yyy")
    //快速模式:生成渠道包時不進行校驗(速度可以提升10倍以上,默認為false)
    fastMode = false//低內存模式(僅針對V2簽名,默認為false):只把簽名塊、中央目錄和EOCD讀取到內存,不把最大頭的內容塊讀取到內存,在手機上合成APK時,可以使用該模式
    lowMemory = false
}

然后,通過 gradle rebuildChannel 命令生成多渠道包。

原理

VasDolly 實現原理官方講解地址:https://github.com/Tencent/VasDolly/wiki/VasDolly%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86

VasDolly 的原理是利用 APK 文件的特殊結構,將渠道信息寫入到 APK 文件的空白區域,從而實現無損的多渠道打包。具體來說,VasDolly 根據 APK 文件使用的簽名類別,選擇不同的多渠道打包方式。

如果 APK 文件使用的是 V1 簽名,那么 VasDolly 會將渠道信息寫入到 APK 文件的 Zip Comment 區域。Zip Comment 是 Zip 文件格式中的一個字段,用于存儲一些注釋信息,通常不會被解壓縮工具或者系統解析。因此,將渠道信息寫入到 Zip Comment 區域,不會影響 APK 文件的完整性和安全性。同時,由于 Zip Comment 區域位于 APK 文件的末尾,所以寫入渠道信息的速度非??欤恍枰薷囊粋€字節的偏移量即可。

如果 APK 文件使用的是 V2 或者 V3 簽名,那么 VasDolly 會將渠道信息寫入到 APK Signing Block 區域。APK Signing Block 是 V2 或者 V3 簽名引入的一個新區域,用于存儲簽名相關的數據。每個數據都有一個 ID 來標識其類型,例如 0x7109871a 表示 V2 簽名數據。VasDolly 會使用一個自定義的 ID(0x71777777)來標識渠道信息,并將其寫入到 APK Signing Block 區域。由于這個區域不會被系統解析,所以不會影響 APK 文件的安全性。同時,由于這個區域位于中央目錄和 EOCD 之前,所以寫入渠道信息的速度也很快,只需要修改兩個字節的偏移量即可。

通過這種方式,VasDolly 可以實現在不重新簽名和對齊的情況下,快速生成多個渠道包。在應用運行時,可以通過 VasDolly 提供的 helper 類庫來讀取渠道信息,并進行相應的處理。

服務端接入 VasDolly 教程

安卓接入了 VasDolly 之后,就該我們服務端出手了,服務端如果能實現渠道打包的操作,運營每次上新渠道就不需要再找安卓進行新渠道打包,運營直接在后臺上傳母包,選定渠道后即可獲取對應的渠道包,可以節約大家的時間,避免耗費人力在渠道打包這一步。由此可見,服務端進行渠道打包操作還是有必要的。

意外發現

一開始我是想用官方提供的 jar 包工具,通過命令行調用的方式來實現服務端打渠道包的,官方提供的 readme 文檔如下,

圖片圖片

但是由于博主項目是使用容器環境部署,要是用命令行打包的話,需要引入 VasDolly jar 包并且掛載都容器中,感覺比較麻煩。就想能不能直接引入 VasDolly 依賴來實現打包操作。

于是我在 maven 中央倉庫搜索了 com.tencent.vasdolly 關鍵字后,有了如下發現,

圖片圖片

可以看到 VasDolly 雖然是一個 Gradle 項目,但是官方也提供了部分模塊的在 Maven 中的 pom 坐標。

查看 VasDolly 倉庫代碼,發現官方定義了 write 模塊,

圖片圖片

進入其中,發現了 readme 內容如下,

圖片圖片

Ok,到這里,我們發現其實官方提供了 pom 依賴接入,直接使用 ChannelWriter 即可實現渠道打包的操作。

具體教程

  • 在后端 maven 項目中引入 VasDolly 的 pom 依賴,當前最新依賴版本如下,
<dependency>
      <groupId>com.tencent.vasdolly</groupId>
      <artifactId>writer</artifactId>
      <version>3.0.6</version>
  </dependency>
  <dependency>
      <groupId>com.tencent.vasdolly</groupId>
      <artifactId>common</artifactId>
      <version>3.0.6</version>
  </dependency>
  <dependency>
      <groupId>com.tencent.vasdolly</groupId>
      <artifactId>reader</artifactId>
      <version>3.0.6</version>
  </dependency>
  • 然后我們就可以利用 ChannelWriter 類實現渠道打包操作,ChannelWriter 類提供的 V2 簽名打渠道包方法如下:
public static void addChannelByV2(File apkFile, String channel, boolean lowMemory) throws IOException, SignatureNotFoundException {
      addChannelByV2(apkFile, apkFile, channel, lowMemory);
  }

addChannelByV2 方法的 apkFile 參數是母包文件,channel 參數是需要打包的渠道名稱,lowMemory 參數是 V2 簽名打渠道包提供的參數,默認為 false。該方法會直接將我們傳入的 apkFile 母包修改成 V2 簽名的渠道包。如此一來,我們就獲得了我們需要的渠道包了。

  • 除了利用 ChannelWriter 類實現打渠道包操作,我們還可以利用 ChannelReader 類來實現讀取渠道包的渠道參數,ChannelReader 類提供的 V2 簽名渠道包參數讀取方法如下:
public static String getChannelByV2(File channelFile) {
      System.out.println("try to read channel info from apk : " + channelFile.getAbsolutePath());
      return IdValueReader.getStringValueById(channelFile, -2012129793);
  }

getChannelByV2 方法的 channelFile 參數就是打包后渠道包,該方法會返回渠道包中的渠道信息。

責任編輯:武曉燕 來源: waynblog
相關推薦

2016-03-18 09:04:42

swift服務端

2012-03-02 10:38:33

MySQL

2013-03-25 10:08:44

PHPWeb

2010-08-03 09:59:30

NFS服務

2016-11-03 09:59:38

kotlinjavaspring

2021-05-25 08:20:37

編程技能開發

2010-02-24 15:42:03

WCF服務端安全

2022-12-29 08:56:30

監控服務平臺

2010-03-19 18:17:17

Java Server

2009-08-21 15:22:56

端口偵聽

2010-03-18 18:09:36

Java Socket

2021-04-26 13:20:06

Vue服務端渲染前端

2009-08-21 16:14:52

服務端與客戶端通信

2011-09-09 09:44:23

WCF

2009-08-21 15:59:22

服務端與客戶端通信

2025-09-30 09:20:48

SpringAIMCP

2024-03-06 14:58:52

客戶端微服務架構

2009-08-21 15:36:41

服務端與客戶端

2009-08-21 15:54:40

服務端與客戶端

2010-03-18 17:47:07

Java 多客戶端通信
點贊
收藏

51CTO技術棧公眾號

色婷婷亚洲精品| 国产日韩一区二区三区在线| 午夜精品久久久久久久| 成人黄色午夜影院| 亚洲av成人无码久久精品| 在线观看午夜av| 久久国产精品久久久久久电车| 欧美大片在线观看一区二区| 警花观音坐莲激情销魂小说| 国产精品传媒在线观看| 神马香蕉久久| 婷婷丁香激情综合| 国产欧美综合精品一区二区| 欧美精品成人久久| www一区二区三区| 一区在线播放视频| 成人a视频在线观看| 免费一级suv好看的国产网站| 3d欧美精品动漫xxxx无尽| 久久在线观看免费| 日韩免费av在线| 人妻av无码一区二区三区 | 久久精品亚洲精品| 日韩av一卡二卡三卡| 九七久久人人| 国产美女久久久久| 美女久久久久久久| 国产裸体视频网站| 色老头在线观看| 国产不卡免费视频| 91精品国产一区| 欧美色图亚洲激情| 国产第一亚洲| 亚洲天堂av一区| 91观看网站| 日韩和一区二区| 亚洲另类av| 欧美伊人精品成人久久综合97| 日韩欧美亚洲在线| 国产精品亚洲lv粉色| 欧美日韩网站| 欧美精品一区二区三区四区| 日韩久久一级片| av女优在线| 国产成人自拍网| 91产国在线观看动作片喷水| 妺妺窝人体色WWW精品| 欧美超级乱淫片喷水| 国产精品久久久久久久免费大片| 精品无码久久久久久久| 里番精品3d一二三区| 日韩欧美在线视频免费观看| 亚洲国产欧美日韩| 精品人妻一区二区三区含羞草| 最新亚洲激情| 伊人久久免费视频| 无码人妻少妇色欲av一区二区| а√天堂8资源中文在线| 国产午夜亚洲精品理论片色戒 | 国产尤物一区二区| 高清一区二区三区四区五区| 国产高清一区二区三区四区| 久久久久毛片免费观看| 欧美日韩国产一中文字不卡 | 欧美精品国产| 国产网站欧美日韩免费精品在线观看 | 色综合久久综合网97色综合| 亚洲人久久久| 欧美一区二区在线观看视频| 欧美96一区二区免费视频| 欧美激情久久久久| 久久久久久成人网| 欧美三级午夜理伦三级小说| 在线观看91av| 欧美日韩性生活片| 91亚洲天堂| 国产欧美精品一区aⅴ影院| 97超碰人人模人人爽人人看| 欧美性受xxx黑人xyx性爽| 亚洲高清网站| 久久精品国产成人| 魔女鞋交玉足榨精调教| 91久久精品无嫩草影院| 欧美色精品在线视频| 北条麻妃在线视频观看| 青春草在线免费视频| 中文字幕亚洲精品在线观看| 欧美一区二区综合| 天堂成人在线观看| 国产不卡视频一区| 成人免费福利在线| 亚洲视频一区二区三区四区| 裸体一区二区| 4438全国成人免费| 国产中文字幕免费| 午夜视频一区| 久久在线免费观看视频| 在线观看黄网址| 欧美gvvideo网站| 色综合伊人色综合网站| 欧美激情 一区| 精品99在线| 亚洲欧美一区二区三区情侣bbw| 国产黑丝一区二区| 国产精品视屏| 亚洲成人a级网| 最新中文字幕日本| 操欧美女人视频| 精品日韩一区二区三区| 免费观看一区二区三区| 亚洲精品一二三**| 日韩久久免费av| 91精品人妻一区二区三区蜜桃2 | av免费在线观看网址| 国产精品不卡视频| 亚洲自拍的二区三区| 色多多视频在线观看| 国产精品不卡一区二区三区| 一本一本a久久| 免费a级在线播放| 亚洲视频1区2区| 91精品国产吴梦梦| 波多野结衣在线高清| 精品国产乱码久久久久久婷婷 | 国产理论在线| 精品久久中文字幕久久av| av天堂永久资源网| a∨色狠狠一区二区三区| 欧美日韩精品欧美日韩精品一| 手机av在线网| av成人资源| 亚洲乱码国产乱码精品精| 一二三四国产精品| 综合天堂av久久久久久久| 欧美精品国产精品日韩精品| 青青国产在线观看| 日韩国产精品久久久| 成人欧美一区二区三区在线| 不卡的日韩av| 91美女蜜桃在线| 一本久道久久综合狠狠爱亚洲精品 | av动漫一区二区| 欧美日韩综合久久| 老司机在线看片网av| 午夜精彩视频在线观看不卡| 国产黄色特级片| 日韩一区二区三免费高清在线观看| 日韩欧美成人激情| 性欧美丰满熟妇xxxx性仙踪林| 日韩免费一区| 高清一区二区三区四区五区| 中文字幕乱码人妻二区三区| av中文字幕一区| 性刺激综合网| www在线观看黄色| 欧美日韩视频一区二区| 折磨小男生性器羞耻的故事| 精品精品99| 国模视频一区二区三区| 中文字幕一区二区三区免费看| 成人小视频免费在线观看| 日韩免费av电影| free性欧美| 欧美精品久久一区二区三区| 丰满大乳奶做爰ⅹxx视频 | 日韩中文字幕在线| 国产精品成人免费一区二区视频| 日韩—二三区免费观看av| 91久久久一线二线三线品牌| 国产三级在线免费观看| 亚洲国产精品一区二区久久 | 二级片在线观看| 玛雅亚洲电影| 亚洲第一精品电影| 成年人午夜剧场| 天堂成人免费av电影一区| 成人性色av| 色老头视频在线观看| 色欧美日韩亚洲| 成人午夜精品无码区| 伊人久久大香线| 国产精品露脸自拍| 极品美乳网红视频免费在线观看 | 国产中文字幕视频| 成人av在线资源网| 日韩一二区视频| 色999久久久精品人人澡69| 亚洲男人7777| 九九热在线视频播放| 成人免费av网站| 成年人深夜视频| 国产精品成人3p一区二区三区| 尤物tv国产一区| 国产女主播喷水视频在线观看| 99re视频精品| 国产美女无遮挡网站| 久久人人爽人人爽人人片av不| 欧美黑人一级爽快片淫片高清| 国产乱码精品一区二三区蜜臂| 国产精品美女久久久久av爽李琼 | 国产乱码字幕精品高清av| 一区二区不卡在线观看| 成人免费网站www网站高清| 亚洲男人天堂九九视频| 国产精品999在线观看| 成人av电影免费在线播放| 国产视频在线观看网站| www.国产精品一区| 性欧美xxxx| 青青视频在线观| 在线亚洲欧美专区二区| 亚洲 小说 欧美 激情 另类| 久久国产成人| 深夜福利成人| 欧美一级做a| 久久精品久久久久| 韩国av免费在线观看| 午夜国产精品一区| 亚洲av综合一区二区| 视频精品一区二区| 亚洲亚洲精品三区日韩精品在线视频| 亚洲成人a级片| 欧美激情精品久久久久久免费印度| 韩国av在线免费观看| 精品福利在线视频| 99久久99久久精品免费| 国产在线播放一区| 欧美亚洲黄色片| 亚洲精品无吗| 成人性生交大片免费看小说 | 亚洲愉拍自拍另类高清精品| 中文字幕一区二区三区人妻在线视频| 亚洲人妖在线| 欧美高清性xxxxhdvideosex| 欧美高清影院| 欧美精品国产精品日韩精品| 黄色在线小视频| 欧美日韩国产成人在线91| 欧美三根一起进三p| 91亚洲精品久久久蜜桃网站| 激情 小说 亚洲 图片: 伦| 在线成人激情| 麻豆91av| 国产精品成人3p一区二区三区| 97人人模人人爽人人喊中文字| 国产在线视频网| 日韩欧美国产午夜精品| 中文字幕免费观看| 亚洲午夜视频在线| 中文天堂资源在线| 北岛玲一区二区三区四区| 91av俱乐部| 一区视频在线| 亚洲欧美国产一区二区| 大奶在线精品| 国产欧美精品一区二区三区-老狼| 欧美xxx黑人xxx水蜜桃| 一区二区欧美亚洲| 黄色av一区二区三区| 欧美色成人综合| 日本中文字幕免费观看| 国产精品久久久久国产精品日日| 日本中文字幕精品| 香蕉亚洲视频| 小泽玛利亚av在线| 成人在线一区| 蜜桃传媒视频麻豆一区| 亚洲午夜免费| 91精品视频在线看| 性欧美超级视频| 久久人人看视频| 免费观看在线黄色网| 亚洲午夜久久久久久久| 国产普通话bbwbbwbbw| 日本大香伊一区二区三区| 日韩高清dvd碟片| www久久久久| 日韩成人av影院| 国产一区999| 国产老熟妇精品观看| 日韩理论电影院| 久久狠狠久久综合桃花| 免费观看在线一区二区三区| 日本欧美精品在线| 黄色在线观看视频网站| www.欧美免费| 亚洲视频tv| 亚洲桃花岛网站| 污污的视频网站在线观看| 日韩一卡二卡三卡国产欧美| 亚洲综合精品视频| 欧美在线影院一区二区| 精品免费囯产一区二区三区 | 西西44rtwww国产精品| 亚洲精品久久7777| 久草手机视频在线观看| 国产精品水嫩水嫩| 国精产品一区一区| 国产精品三级在线观看| 欧洲性xxxx| 国产精品久久久久久久久果冻传媒 | 日本在线播放视频| 天天综合天天综合色| 亚洲综合一二三| 黄色一区二区在线| 可以免费看的av毛片| 欧美视频免费在线观看| 精品人妻一区二区三区免费看 | 一区二区三区免费观看视频| 欧美性生活一区| 一级黄色片免费| 88在线观看91蜜桃国自产| 精品国产av鲁一鲁一区| 欧美成人aa大片| 性xxxxbbbb| 亚洲午夜精品视频| 巨大荫蒂视频欧美大片| 欧美日韩xxxxx| 182在线视频观看| 欧美一级bbbbb性bbbb喷潮片| gogo亚洲高清大胆美女人体| 成人av在线天堂| 视频精品一区二区三区| 国产区二精品视| 国产日韩视频在线| 国产系列第一页| 樱桃成人精品视频在线播放| 青青青国产在线观看| 葵司免费一区二区三区四区五区| 最新中文字幕2018| 国产精品系列在线播放| 香港三日本8a三级少妇三级99| 国产亚洲精品aa午夜观看| 亚洲a∨无码无在线观看| 亚洲欧美激情小说另类| 国产在线成人精品午夜| 91国在线观看| 国产激情视频在线播放| 日韩精品黄色网| 在线免费黄色| 欧美激情中文网| 国产一区一一区高清不卡| 大波视频国产精品久久| 国产一区二区三区四区大秀| 亚洲黄色网址在线观看| 免费在线观看成人av| 狠狠躁18三区二区一区| 精品少妇久久久| 色94色欧美sute亚洲线路一ni | 91精品国产麻豆| 成人毛片视频免费看| 亚洲三级黄色在线观看| 日韩电影免费观看| 国产精品欧美一区二区三区奶水| 蜜桃精品视频| 欧美三日本三级少妇三99| 欧美日韩1区2区3区| 成年人在线观看视频免费| 国产高清亚洲一区| 老司机福利在线观看| 欧美日韩国产页| a级片免费视频| 中文精品99久久国产香蕉| 岛国在线视频网站| 成人欧美一区二区三区在线湿哒哒| 欧美激情网址| 男人天堂网站在线| 久久99久久99精品免视看婷婷| 久久久久麻豆v国产精华液好用吗| 国产精品国产三级国产专播品爱网 | 国产精品成人一区二区| 欧美成人一二区| 日本一区二区三区视频免费看| 精品成人在线| 亚洲精品mv在线观看| 久久精品一区蜜桃臀影院| 久草网视频在线观看| 欧美日韩久久久| 国产小视频免费在线观看| 午夜精品蜜臀一区二区三区免费| **日韩最新| 亚洲欧洲日韩精品| 视频在线观看一区二区三区| 182在线视频| 亚洲精品国产无天堂网2021| 一级久久久久久久| 中文字幕亚洲第一| 日韩成人亚洲| 日本精品一区二区三区不卡无字幕| 国产亚洲成人一区| 国产精品伦子伦| 亚洲大片在线观看| 二区三区在线视频| 日韩成人免费在线| 国产三级生活片| 国产精品国产三级国产普通话蜜臀| 最近免费中文字幕大全免费版视频| 日韩成人高清在线| 黑森林国产精品av| 久久99精品久久久久久青青日本|