您的位置:首页 > 其它

多渠道打包(友盟统计)

2017-05-19 09:51 197 查看
转自:http://www.cnblogs.com/0616--ataozhijia/p/4203997.html

一般用渠道的统计无非是用友盟或者其它之类的,今天就以友盟的为例吧。
渠道信息一般在
AndroidManifest.xml
中修改以下值:

<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />


首先你必须在
AndroidManifest.xml
中的
meta-data
修改以下的样子:

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


其中
${UMENG_CHANNEL_VALUE}
中的值就是你在
gradle
中自定义配置的值。

build.gradle
文件就利用
productFlavors
这样写:



productFlavors {

wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}

baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}

c360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
}

uc {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
}

}




其中
[UMENG_CHANNEL_VALUE: "wandoujia"]
就是对应
${UMENG_CHANNEL_VALUE}
的值。

最新更新
后来发现上面的重复代码太多,就在网上又发现了一个更简洁的写法



productFlavors {

wandoujia {}
baidu {}
c360 {}
uc {}

productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

}




其中
name
的值对相对应各个
productFlavors
的选项值,这样就达到自动替换渠道值的目的了。

这样生成apk时,选择相应的
Flavors
来生成指定渠道的包就可以了,而且生成的apk会自动帮你加上相应渠道的后缀,非常方便和直观。大家可以自己反编译验证。

推荐马伟奇老师的文章如何实现多渠道打包
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: