android友盟统计分渠道打包

什么是多渠道包

渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等

产品在不同的应用市场可能有不同的统计需求,需要为每个应用市场的Android包设定一个可以区分应用市场的标识,这个为Android包设定应用市场标识的过程就是多渠道打包。


为什么要提供多渠道包

国内存在着有众多的应用市场,产品在不同的渠道可能有不同的统计需求,为此Android开发人员需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。

在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计。


友盟的多渠道打包

友盟就提供了多渠道打包的方式,可用于渠道统计等。

现在Android的构建工具换成了gradle,通过gradle,简单配置后就可以实现自动打所有渠道包。


补充知识

了解下BuildTypes、Flavors、BuildVariants三个定义:

1、BuildTypes : 构建类型,AndroidStudio的Gradle组件默认提供给了“debug”“release”两个配置。

2、Flavors : 产品渠道,可以根据productFlavors,针对不同的渠道配置个性化apk

3、BuildVariants:每一个buildtype和flavor组成一个buildvariant


1.按照umeng的要求,manifest文件中需要有(在application下,和activity是并列关系):

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

2.app的build.gradle配置

1)写法一

 
    productFlavors {
        yingyongbao {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
        }
        huawei {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei"]
        }
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
        }
        sc360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
        }
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
        jky {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "jky"]
        }
    }

2)写法二

    productFlavors {
        yingyongbao{}
        huawei{}
        xiaomi{}
        sc360{}
        baidu{}
        jky{}
    }
 
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

如果没有错误的话,效果是这样的

android友盟统计分渠道打包

打包发布后,在友盟后台看到的效果是这样的

android友盟统计分渠道打包

android友盟统计分渠道打包


上一篇:Maven学习总结(三):修改从Maven中心仓库下载到本地的jar包的默认存储位置


下一篇:[Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画