1、为什么需要多渠道包
为了区分同一app不同android市场,也就是说不同的市场(比如小米市场、华为市场、应用宝等)使用不同的渠道包,所用代码一致,只是渠道号 channel 不一样,这样做是为了方便运营统计。
2、多渠道打包方案
2.1 友盟多渠道打包
将渠道标识放到 AndroidManifest.xml 中的 meta-data 中;
在 gradle 编译的时候,根据这个配置将meta-data中的占位符替换成对应的值;
获取渠道时,android代码中读取 UMENG_CHANNEL 的值,添加到请求参数中。
AndroidManifest.xml:
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>
在app的 build.gradle 中配置渠道号:
android {
productFlavors {
yingyongbao {
manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"yingyongbao" ]
}
baidu {
manifestPlaceholders