Android多渠道打包(一):基礎多渠道打包

本章將介紹多渠道數據對於開發者的價值、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)

優缺點

在渠道較少(個位數)的時候可以使用,但對於多渠道的時候太耗時耗力了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章