本章將介紹多渠道數據對於開發者的價值、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)
優缺點
在渠道較少(個位數)的時候可以使用,但對於多渠道的時候太耗時耗力了。