Android幾種多渠道打包的步驟詳解
1、什么是多渠道打包
在不同的應(yīng)用市場(chǎng)可能有不同的統(tǒng)計(jì)需求,需要為每個(gè)應(yīng)用市場(chǎng)發(fā)布一個(gè)安裝包,這里就引出了Android的多渠道打包。在安裝包中添加不同的標(biāo)識(shí),以此區(qū)分各個(gè)渠道,方便統(tǒng)計(jì)app在市場(chǎng)的各種。
2、幾種打包方式
- 友盟 UMeng
- Android Studio自帶
- 美團(tuán) Walle
3、開始使用
3.1 友盟UMeng
第一步:在AndroidManifest中添加
<meta-data
android:name="UMENG_CHANNEL"
android:value="${channel}" />
第二步:在build.gradle中添加,baidu {}為指定渠道名稱簡寫
build {
......
productFlavors {
baidu {}
xiaomi {}
qihu360 {}
yingyongbao {}
huawei {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL: name]
}
}
第三步:設(shè)置輸出APK名稱
Android Studio 2.3版本:
build {
......
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = "driver_${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
Android Studio 3.0版本:
build {
......
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "driver_${variant.productFlavors[0].name}_v${variant.versionName}.apk"
}
}
}
Gradle后如果出現(xiàn)如下報(bào)錯(cuò)

則需要配置flavor dimension的維度是該版本號(hào),這樣維度就是都是統(tǒng)一的了
build {
......
defaultConfig {
......
flavorDimensions "versionCode"
}
}
第四步:編譯打包
Build - Generate Signed Bundle or APK - 選擇Release或Debug

3.2 Android Studio自帶
Android Studio多形態(tài)打包與友盟打包方式相同,但是標(biāo)簽<meta-data>中name可自行定義,不限制為"UMENG_CHANNEL"
<meta-data
android:name="UMENG_CHANNEL" //可以隨意定義
android:value="${channel}" />
3.3 美團(tuán) Walle
第一步:配置根build.gradle
buildscript {
dependencies {
classpath 'com.mcxiaoke.packer-ng:plugin:2.0.1'
}
}
第二步:配置App build.gradle
apply plugin: 'packer'
dependencies {
......
implementation 'com.mcxiaoke.packer-ng:helper:2.0.1'
}
第三步:插件配置
build {
......
packer {
archiveNameFormat = '${buildType}-v${versionName}-${channel}' // 定義輸出APK名稱
archiveOutput = new File(project.rootProject.buildDir, "apks") // 設(shè)置APK輸出目錄
channelFile = new File(project.rootDir, "channel.txt") // 添加渠道配置文件
}
}
第四步:新建渠道配置文件channel.txt
在工程根目錄下新建channel.txt文件,如圖

文件內(nèi)容為渠道名稱,要求:必須每一行一個(gè)渠道
第五步:編譯打包
使用Terminal命令:
gradlew clean apkRelease

可參考:[美團(tuán)多渠道打包官方文檔](https://github.com/mcxiaoke/packer-ng-plugin)
4、獲取渠道信息
1、友盟 和 Android Studio獲取方式
通過讀取AndroidManifest中<meta-data>標(biāo)簽
private String getChannel() {
try {
PackageManager pm = getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
String channel = appInfo.metaData.getString(key); // key為<meta-data>標(biāo)簽中的name
if (!TextUtils.isEmpty(channel)) {
return channel;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
2、美團(tuán) Walle獲取方式
美團(tuán)集成自帶獲取方法
private String getChannel() {
try {
PackageManager pm = getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
String channel = appInfo.metaData.getString(key); // key為<meta-data>標(biāo)簽中的name
if (!TextUtils.isEmpty(channel)) {
return channel;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
總結(jié)
以上所述是小編給大家介紹的Android幾種多渠道打包的步驟詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Android控件CardView實(shí)現(xiàn)卡片布局
這篇文章主要為大家詳細(xì)介紹了Android控件CardView實(shí)現(xiàn)卡片布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Android ActionBar制作時(shí)鐘實(shí)例解析
這篇文章主要為大家詳細(xì)介紹了Android ActionBar制作時(shí)鐘的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Android實(shí)現(xiàn)view拖動(dòng)到任意位置
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)view拖動(dòng)到任意位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
android studio3.0以上如何通過navicat訪問SQLite數(shù)據(jù)庫文件
這篇文章主要介紹了android studio3.0以上如何通過navicat訪問SQLite數(shù)據(jù)庫文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Android響應(yīng)事件onClick方法的五種實(shí)現(xiàn)方式小結(jié)
本篇文章主要介紹了Android響應(yīng)onClick方法的五種實(shí)現(xiàn)方式小結(jié),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

