<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android使用Walle實現(xiàn)多渠道打包功能

          共 2288字,需瀏覽 5分鐘

           ·

          2021-04-19 10:24

          介紹


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


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


          使用


          使用Walle生成多渠道的速度是很快的,原來的項目打一個包就需要兩分鐘多,每次發(fā)布打7個包需要十幾分鐘。用了Walle后,7個包只要兩分鐘左右就完事了。那叫一個快…


          添加依賴&配置渠道,在項目的build.gradle文件中添加依賴:

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


          在當前app的build.gradle 文件中添加依賴,以及配置插件

          apply plugin: 'walle'
          ...
          dependencies { ... compile 'com.meituan.android.walle:library:1.1.3'}
          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")}


          對應(yīng)的屬性:


          apkOutputFolder:指定渠道包的輸出路徑, 默認值為:

          new File(“${project.buildDir}/outputs/apk”)

          這里指定為build/outputs/apk。


          apkFileNameFormat:定制渠道包的APK的文件名稱, 默認值為:

          ’appName?appName?{buildType}-${channel}.apk’



          可使用以下變量:


          projectName - 項目名字


          appName - App模塊名字


          packageName - applicationId (App包名packageName)


          buildType - buildType (release/debug等)


          channel - channel名稱 (對應(yīng)渠道打包中的渠道名字)


          versionName - versionName (顯示用的版本號)


          versionCode - versionCode (內(nèi)部版本號)


          buildTime - buildTime (編譯構(gòu)建日期時間)


          fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值)


          flavorName - 編譯構(gòu)建 productFlavors 名


          channelFile:包含渠道配置信息的文件路徑


          channelFile:包含渠道配置信息的文件路徑。


          在app目錄下創(chuàng)建channel文件,用于配置渠道信息(文件類型:Text)



          下面是我的配置表

             Qh360 #360   Yyb #應(yīng)用寶   Wdj #豌豆莢   Lenovo #聯(lián)想   Xiaomi #小米   Huawei #華為   Meizhu #魅族


          獲取渠道信息,通過以下代碼,可以取渠道信息:

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


          生成渠道包,到這里,基本的配置都已完成。接下來可以直接打包了。


          在Terminal中輸入對應(yīng)的指令,即可完成打包??吹紹UILD SUCCESSFUL后說明已經(jīng)完成打包了。



          所有渠道

          ./gradlew clean assembleReleaseChannels


          渠道包的生成目錄默認存放在 build/outputs/apk/,也可以通過Walle閉包中的apkOutputFolder參數(shù)來指定輸出目錄。


          指定渠道
          生成單個渠道包(huawei渠道):

          ./gradlew clean assembleReleaseChannels -PchannelList=huawei


          生成多個渠道包(huawei、xiaomi渠道):

           ./gradlew clean assembleReleaseChannels -PchannelList=huawei,xiaomi


          結(jié)果,運行

          ./gradlew clean assembleReleaseChannels

          后,可以在build/outputs/channels看到對應(yīng)的渠道包。



          到這里就介紹完啦.

          瀏覽 31
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  午夜福利剧场 | 海外网站天天爽夜夜爽专业操老外 | 国内精品久久久久久久久久变脸 | 亚洲黄色电影在线免费观看 | 操逼射精视频 |