Android多渠道打包

现在市场上很多app应用存在于各个不同的渠道,大大小小几百个,当我们想要在发布应用之后统计各个渠道的用户下载量,我们就要进行多渠道打包。

具体实现步骤:

1、(以友盟为例)在manifest文件的application下添加以下代码:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

这里写图片描述
这段配置,value那里就是wandoujia,360之类的渠道名称,但是我们在这里不会去写渠道名,写的是一个占位符,后面gradle编译的时候会动态的替换掉它

2、在app的build.gradle的android中添加以下代码

productFlavors{
     xiaomi{}
     qihu360{}
     wandoujia{}
     baidu{}
     yingyongbao{}
 }
 productFlavors.all{
     flavor->flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
 }

这里写图片描述
xiaomi、baidu是渠道的名称,只要将这些渠道名称赋值给友盟的UMENG_CHANNEL_VALUE,每个渠道就是flavor的名称

如果gradle版本是3.0以上,则需要在app的build.gradle中的android设置flavor的风格一致,如下添加:

flavorDimensions "versionCode"

这里写图片描述

3、编译多渠道的包
点击控制台右侧的Gradle,打开:app下的install,可以看到所有渠道的的各种包,双击就可以,但是还需要手动打开模拟器的app;如果想一次性把所有的包都打包好,可以双击击:app下的build中的assemble

4、获取渠道名称

try {
   ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
    String channe = applicationInfo.metaData.getString("UMENG_CHANNEL");
    tv01.setText(channe);
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}

推荐参考:https://blog.csdn.net/hpc19950723/article/details/60592643

猜你喜欢

转载自blog.csdn.net/qq_38250682/article/details/80940437