Android渠道打包
为什么需要渠道打包
- 为了统计各市场的效果(活跃数、下单数等),需要用某种方式唯一标识它们。
- 客户端访问API时会在请求参数中带上渠道号,以便后台接下来计算不同渠道的效果。
添加渠道方法
在AndroidManifest.xml
中的application
标签下添加:
1 | <!-- UMENG配置 --> |
在build.gradle
文件中的android
标签下添加:
1 | productFlavors { |
获取渠道方法
在java代码中获取:
1 | // 调用方式 |
扩展(更快速的打包方式):
渠道打包的另一种解决方案:使用python脚本在META-INFO
中添加channel_<渠道名>
名称的空文件;
友盟提供的设置渠道方案
就是上面的通过
AndroidManifest
配置1
<meta-data android:name="UMENG_CHANNEL" android:value="UMeng" />
通过在代码中执行
1
2String channel = getApplicationMetaValue(this, "UMENG_CHANNEL");
AnalyticsConfig.setChannel(channel);
NOTE1: 坑,不能同时设置两种方式,友盟技术的解释是优先使用第一次取到了渠道名;如果采用java代码的方式,需要在Application
中设置,而不是Activity
;
NOTE2: 也可以通过url将渠道名传递给后台,由后台来做统计;
参考资料
- Android多渠道打包没你想的那么复杂
- 美团Android自动化之旅—生成渠道包
- ANDROID STUDIO系列教程六–GRADLE多渠道打包
- [Android Studio 权威教程]多渠道打包和一键完成(全部产品)打包并签名
- Android多渠道打包方案介绍
从keystore中获取md5
1 | keytool.exe -v -list -keystore lyloou.jks |