本章将介绍多渠道数据对于开发者的价值、Android原始多渠道打包
Android多渠道打包(一):基础多渠道打包
Android多渠道打包(二):友盟多渠道打包
Android多渠道打包(三):美团多渠道打包
Android多渠道打包(四):360多渠道打包
Android多渠道打包(五):360多渠道打包+
Android多渠道打包(六):maven&gradle
Android多渠道打包(七):系列总结及展望
多渠道设置的价值
开发者常在应用中设置渠道ID,并获取相应的应用数据。这些数据可以帮助应用开发者统计和分析流量来源、内容使用、用户属性和行为数据,以便开发者利用数据进行产品、运营、推广策略的决策。
数据对于开发者具有非常重要的价值,例如可以使用这些数据来进行应用趋势、渠道使用、用户留存、用户行为、用户属性、BUG错误等情况得分析。
对于数据的收集开发者可以自己开发数据分析平台,或者是使用第三方数据分析提供商的SDK,当前主流的第三方分析服务商有友盟、TalkingData、DataEye、Flurry等。
常用的渠道按系统平台可以分为Windows端、Linux端、IOS端、Android端、Windows phone端等,再在各个平台可以继续细分下去,按开发者的需求或是产品细分状况,可以是同平台不同产品的渠道、同产品不同系列的渠道、同系列不同应用场景的渠道等。
大多开发平台的多渠道设置,开发者都可以简单实现,但是Android平台来说,由于其开源的特性,产生了大量的产品碎片,同时也出现了多个第三方应用商店,因此渠道设置对于开发者来说是一个严峻的问题,比如开发者开发了某个应用,准备大面积的推广,就面临上线多个应用市场或产品渠道,渠道数量甚至超过1000之多,因此Android开发者一直在探索更加优秀的多渠道设置方式。
Android多渠道打包系列
好了说了这么多,我们正式来了解如何Android多渠道打包,对于本系列我讲介绍包括如下内容,并分别作为一章介绍。
原始多渠道打包、友盟多渠道打包、美团多渠道打包
、360多渠道打包、360多渠道打包+、maven+gradle、多渠道打包总结。
Android原始多渠道打包
来源
原始多渠道打包的方式,指的是每次打包的时候在代码中设置channelId,打包完这个渠道的apk包后,需要重新设置channelId再进行打包,如此反复。该方式多出现在android早期的时候,多被一些刚入行的android工程师使用,或者是一些公司面对较少渠道的时候使用。
原理
原始多渠道打包就是个体力活,在较少渠道的时候可以使用,但是面对上千的渠道的时候,使用这种方式你会后悔当一名android开发工程师。它的原理是在应用代码中设置渠道ID,使用的时候将渠道ID设置给数据分析接口,数据分析平台通过该渠道ID分析之。其实后面多渠道方式的本质原理都是这样的,但是具体扩展方式不同而已,将在后面的分析的时候介绍。
实现
- 第一步:设置渠道id
方式一 在代码中直接设置channelId
String channelId="channel1";
方式二 在AndroidMainfest.xml中application中设置meta-data
<manifest ...>
<application ...>
<meta-data
android:name="CHANNEL_NAME"
android:value="channel1" />
...
</application>
</manifest>
在代码中获取channelId
ApplicationInfo appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName()
,PackageManager.GET_META_DATA);
String channelId = appInfo.metaData.getString("CHANNEL_NAME");
- 第二步:集成到sdk中,比如友盟sdk
MobclickAgent. startWithConfigure(UMAnalyticsConfig config)
UMAnalyticsConfig(Context context, String appkey, String channelId)
UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType)
UMAnalyticsConfig(Context context, String appkey, String channelId, EScenarioType eType,Boolean isCrashEnable)
优缺点
在渠道较少(个位数)的时候可以使用,但对于多渠道的时候太耗时耗力了。