您好,登錄后才能下訂單哦!
怎么在Android中利用Walle實現一個多渠道打包功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
使用Walle生成多渠道的速度是很快的,原來的項目打一個包就需要兩分鐘多,每次發布打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") }
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名稱 (對應渠道打包中的渠道名字)
versionName - versionName (顯示用的版本號)
versionCode - versionCode (內部版本號)
buildTime - buildTime (編譯構建日期時間)
fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值)
flavorName - 編譯構建 productFlavors 名
channelFile:包含渠道配置信息的文件路徑
channelFile:包含渠道配置信息的文件路徑。
在app目錄下創建channel文件,用于配置渠道信息(文件類型:Text)
下面是我的配置表
Qh460 #360 Yyb #應用寶 Wdj #豌豆莢 Lenovo #聯想 Xiaomi #小米 Huawei #華為 Meizhu #魅族
獲取渠道信息,通過以下代碼,可以取渠道信息:
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
生成渠道包,到這里,基本的配置都已完成。接下來可以直接打包了。
在Terminal中輸入對應的指令,即可完成打包。看到BUILD SUCCESSFUL后說明已經完成打包了。
所有渠道
./gradlew clean assembleReleaseChannels
渠道包的生成目錄默認存放在 build/outputs/apk/,也可以通過Walle閉包中的apkOutputFolder參數來指定輸出目錄。
指定渠道
生成單個渠道包(huawei渠道):
./gradlew clean assembleReleaseChannels -PchannelList=huawei
生成多個渠道包(huawei、xiaomi渠道):
./gradlew clean assembleReleaseChannels -PchannelList=huawei,xiaomi
結果,運行
./gradlew clean assembleReleaseChannels
可以在build/outputs/channels看到對應的渠道包。
關于怎么在Android中利用Walle實現一個多渠道打包功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。