日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

是美團開源的,個人覺得很好用,分享出來。

下面是官方地址:

https://github.com/Meituan-Dianping/walle

注意:

buildtoos最好選用27版本,因為新的buildtools是v3簽名,會導致apk無法安裝到安卓9手機上。

說明:

Walle(瓦力):Android Signature V2 Scheme簽名下的新一代渠道包打包神器

瓦力通過在Apk中的APK Signature Block區塊添加自定義的渠道信息來生成渠道包,從而提高了渠道包生成效率,可以作為單機工具來使用,也可以部署在HTTP服務器上來實時處理渠道包Apk的升級網絡請求。

Quick Start

為了方便大家的使用,我們提供了2種使用方式:

  • Gradle插件方式,方便快速集成
  • 命令行方式,最大化滿足各種自定義需求

Gradle插件使用方式

配置build.gradle

在位于項目的根目錄 build.gradle 文件中添加Walle Gradle插件的依賴, 如下:

buildscript { dependencies { classpath 'com.meituan.android.walle:plugin:1.1.6' }}

并在當前App的 build.gradle 文件中apply這個插件,并添加上用于讀取渠道號的AAR

apply plugin: 'walle'dependencies { compile 'com.meituan.android.walle:library:1.1.6'}

配置插件

walle { // 指定渠道包的輸出路徑 apkOutputFolder = new File("${project.buildDir}/outputs/channels"); // 定制渠道包的APK的文件名稱 apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'; // 渠道配置文件 channelFile = new File("${project.getProjectDir()}/channel")}

配置項具體解釋:

  • apkOutputFolder:指定渠道包的輸出路徑, 默認值為new File("${project.buildDir}/outputs/apk")
  • apkFileNameFormat:定制渠道包的APK的文件名稱, 默認值為'${appName}-${buildType}-${channel}.apk'
  • 可使用以下變量:
projectName - 項目名字 appName - App模塊名字 packageName - applicationId (App包名packageName) buildType - buildType (release/debug等) channel - channel名稱 (對應渠道打包中的渠道名字) versionName - versionName (顯示用的版本號) versionCode - versionCode (內部版本號) buildTime - buildTime (編譯構建日期時間) fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值) flavorName - 編譯構建 productFlavors 名
  • channelFile:包含渠道配置信息的文件路徑。 具體內容格式詳見:渠道配置文件示例,支持使用#號添加注釋。

如何獲取渠道信息

在需要渠道等信息時可以通過下面代碼進行獲取

String channel = WalleChannelReader.getChannel(this.getApplicationContext());

如何生成渠道包

生成渠道包的方式是和assemble${variantName}Channels指令結合,渠道包的生成目錄默認存放在 build/outputs/apk/,也可以通過walle閉包中的apkOutputFolder參數來指定輸出目錄

用法示例:

  • 生成渠道包 ./gradlew clean assembleReleaseChannels
  • 支持 productFlavors ./gradlew clean assembleMeituanReleaseChannels

更多用法

插入額外信息

channelFile只支持渠道寫入,如果想插入除渠道以外的其他信息,請在walle配置中使用configFile

walle { // 渠道&額外信息配置文件,與channelFile互斥configFile = new File("${project.getProjectDir()}/config.json")}

configFile是包含渠道信息和額外信息的配置文件路徑。

配置文件采用json格式,支持為每個channel單獨配置額外的寫入信息。具體內容格式詳見:渠道&額外信息配置文件示例 。

注意:

  • 此配置項與channelFile功能互斥,開發者在使用時選擇其一即可,兩者都存在時configFile優先執行。
  • extraInfo 不要出現以channel為key的情況

而對應的渠道信息獲取方式如下:

ChannelInfo channelInfo= WalleChannelReader.getChannelInfo(this.getApplicationContext());if (channelInfo != null) { String channel = channelInfo.getChannel(); Map extraInfo = channelInfo.getExtraInfo();}// 或者也可以直接根據key獲取String value = WalleChannelReader.get(context, "buildtime");

臨時生成某渠道包

我們推薦使用channelFile/configFile配置來生成渠道包,但有時也可能有臨時生成渠道包需求,這時可以使用:

  • 生成單個渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan
  • 生成多個渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan,dianping
  • 生成渠道包&寫入額外信息:
  • ./gradlew clean assembleReleaseChannels -PchannelList=meituan -PextraInfo=buildtime:20161212,hash:xxxxxxx
  • 注意: 這里的extraInfo以key:value形式提供,多個以,分隔。
  • 使用臨時channelFile生成渠道包: ./gradlew clean assembleReleaseChannels -PchannelFile=/Users/xx/Documents/channel
  • 使用臨時configFile生成渠道包: ./gradlew clean assembleReleaseChannels -PconfigFile=/Users/xx/Documents/config.json

使用上述-P參數后,本次打包channelFile/configFile配置將會失效,其他配置仍然有效。 -PchannelList,-PchannelFile, -PconfigFile三者不可同時使用。

命令行工具使用方式

可以使用命令行工具來支持各類自定義的需求,具體使用方式詳見:Walle CLI 使用說明

總結

以上是生活随笔為你收集整理的android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。