android多渠道打包插件,Android几种多渠道打包的步骤详解

1、什么是多渠道打包

在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的各种。

2、几种打包方式

友盟 UMeng

Android Studio自带

美团 Walle

3、开始使用

3.1 友盟UMeng

第一步:在AndroidManifest中添加

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]

}

}

第三步:设置输出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后如果出现如下报错

d93bfbeb3ca251c75ee3f07a2d14d7cd.png

则需要配置flavor dimension的维度是该版本号,这样维度就是都是统一的了

build {

......

defaultConfig {

......

flavorDimensions "versionCode"

}

}

第四步:编译打包

Build - Generate Signed Bundle or APK - 选择Release或Debug

b894322473fd0667a2dc2bb3b83864a1.png

3.2 Android Studio自带

Android Studio多形态打包与友盟打包方式相同,但是标签中name可自行定义,不限制为"UMENG_CHANNEL"

android:name="UMENG_CHANNEL" //可以随意定义

android:value="${channel}" />

3.3 美团 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") // 设置APK输出目录

channelFile = new File(project.rootDir, "channel.txt") // 添加渠道配置文件

}

}

第四步:新建渠道配置文件channel.txt

在工程根目录下新建channel.txt文件,如图

928ef786fd5f012453b88d22ee881423.png

文件内容为渠道名称,要求:必须每一行一个渠道

第五步:编译打包

使用Terminal命令:

gradlew clean apkRelease

29cde15e6ea6d4214d2d89ed9480e455.png

4、获取渠道信息

1、友盟 和 Android Studio获取方式

通过读取AndroidManifest中标签

private String getChannel() {

try {

PackageManager pm = getPackageManager();

ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);

String channel = appInfo.metaData.getString(key); // key为标签中的name

if (!TextUtils.isEmpty(channel)) {

return channel;

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

2、美团 Walle获取方式

美团集成自带获取方法

private String getChannel() {

try {

PackageManager pm = getPackageManager();

ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);

String channel = appInfo.metaData.getString(key); // key为标签中的name

if (!TextUtils.isEmpty(channel)) {

return channel;

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

总结

以上所述是小编给大家介绍的Android几种多渠道打包的步骤详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值