個人 App 上線準備工作系列事項(集成一款數據採集、分析、管理的工具)

背景

  • 準備個人 App 的上線工作
  • 在開發的應用中集成數據統計功能,可以方便開發者分析用戶數據來對應用做出對應的改進優化。

選擇

使用 友盟的U-App(移動統計)產品


註冊成爲開發者

  • 登錄友盟官網
  • 執行註冊流程,成爲一名開發者,然後登錄友盟

創建應用獲取 APPKEY

如下圖示:

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
按照上圖所示步驟進行應用 AppKey 的獲取


集成方式-自動集成(推薦)

看官網的 SDK 文檔集成說明可知有自動集成手動集成兩種方式,這裏就以自動集成爲例,也是官方推薦的方式

我們採用官方的推薦的自動集成方式,我接下來會在自己的應用中添加這部分的內容,然後通過實際應用來介紹必要的配置使用。

  • 添加統計SDK在maven中心庫的線上依賴

通過在Android Studio工程build.gradle配置腳本中添加maven線上依賴,導入最新版本組件化統計SDK。

在這裏插入圖片描述
在工程build.gradle配置腳本中buildscript和allprojects段中添加【友盟+】sdk 新maven倉庫地址。如下:

maven { url 'https://dl.bintray.com/umsdk/release' }

在這裏插入圖片描述

  • 在工程App 對應build.gradle配置腳本dependencies段中添加基礎組件庫和統計SDK庫依賴。如下:
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    
    // 友盟統計
    implementation 'com.umeng.umsdk:analytics:8.0.0'
    implementation 'com.umeng.umsdk:common:2.0.0'
}

在這裏插入圖片描述
注意:在Android Studio 3.1及以上版本開發環境下,指定引用最新版本依賴寫法”latest.integration”可能導致下載庫超時,此時需要指定具體版本號。

  • 權限配置。如下:

統計SDK需要宿主APP授予如下權限:

權限 用途
ACCESS_NETWORK_STATE 檢測聯網方式,在網絡異常狀態下避免數據發送,節省流量和電量。
READ_PHONE_STATE 獲取用戶設備的IMEI,通過IMEI對用戶進行唯一標識,以便提供統計分析服務。
ACCESS_WIFI_STATE 獲取WIFI mac地址,在平板設備或電視盒子上,無法通過IMEI標識設備,我們會將WIFI mac地址作爲用戶的唯一標識,以便正常提供統計分析服務。
INTERNET 允許應用程序聯網和發送統計數據的權限,以便提供統計分析服務。
ACCESS_FINE_LOCATION(可選) 通過獲取位置信息,爲開發者提供反作弊功能,剔除作弊設備;同時校正用戶的地域分佈數據,使報表數據更加準確。
ACCESS_COARSE_LOCATION(可選) 通過獲取位置信息,爲開發者提供反作弊功能,剔除作弊設備;同時校正用戶的地域分佈數據,使報表數據更加準確。

下面給出AndroidManifest.xml清單文件示例:

<manifest ……>
<uses-sdk android:minSdkVersion="8"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application ……>

在這裏插入圖片描述

  • 混淆設置

如果您的應用使用了代碼混淆,請添加如下配置,以避免【友盟+】SDK被錯誤混淆導致SDK不可用。

-keep class com.umeng.** {*;}

-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

SDK需要引用導入工程的資源文件,通過了反射機制得到資源引用文件R.java,但是在開發者通過proguard等混淆/優化工具處理apk時,proguard可能會將R.java刪除,如果遇到這個問題,請添加如下配置:

-keep public class [您的應用包名].R$*{
public static final int *;
}

實際,我的 App 混淆文件中添加如下:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

  • 初始化及通用接口

初始化方法由基礎組件包提供,要使用統計SDK,必須在宿主應用application.onCreate函數中調用基礎組件包提供的初始化函數:

/**
* 注意: 即使您已經在AndroidManifest.xml中配置過appkey和channel值,也需要在App代碼中調
* 用初始化接口(如需要使用AndroidManifest.xml中配置好的appkey和channel值,
* UMConfigure.init調用中appkey和channel參數請置爲null)。
*/
UMConfigure.init(Context context, String appkey, String channel, int deviceType, String pushSecret);

/** 
* 注意:如果您已經在AndroidManifest.xml中配置過appkey和channel值,可以調用此版本初始化函數。
*/
UMConfigure.init(Context context, int deviceType, String pushSecret);

Channel渠道的使用規範

每臺設備僅記錄首次安裝激活的渠道,在其他渠道再次安裝不會重複計量。 所以在測試不同的渠道的時候,請使用不同的設備來分別測試不要改變’UMENG_CHANNEL’。

Channel渠道的命名規範

1.可以由英文字母、阿拉伯數字、下劃線、中劃線、空格、括號組成,可以含漢字以及其他明文字符,但是不建議使用中文命名,會出現亂碼。

2.首尾字符不可以爲空格。

3.不要使用純數字作爲渠道ID。

4.最多256個字符。

5.”unknown” 及其各種大小寫形式,作爲【友盟+】保留的字段,不可以作爲渠道名。

在您查看數據時,渠道會作爲一個數據細分的維度。

實際,我的App中如下圖示:
在這裏插入圖片描述

在這裏插入圖片描述

  • 打開日誌

查看日誌,添加代碼如下:

在這裏插入圖片描述

  • 頁面採集模式選擇

官方有4種模式供選擇,這裏我選擇了 AUTO 模式,如下:

在這裏插入圖片描述
Android 4.0及以上版本支持Activity生命週期的自動監控(通過註冊自定義callback函數)。在Android 4.0以上設備中,推薦使用系統自動監控機制進行頁面及基礎指標自動埋點(AUTO模式下SDK會自動調用MobclickAgent.onResume/MobclickAgent.onPause接口,用戶無須手動調用這兩個接口)。

首次使用【友盟+】統計SDK的用戶選用AUTO模式採集頁面數據,僅需執行SDK初始化函數後調用 MobclickAgent.setPageCollectionMode(PageMode mode) 函數即可。

在AUTO或MANUAL模式下,如果需要對非Activity頁面,如Fragment、自定義View等非標準頁面進行統計。需要通過MobclickAgent.onPageStart/MobclickAgent.onPageEnd接口在合適的時機進行頁面統計。

一次成對的 onPageStart -> onPageEnd 調用,對應一次非Activity頁面(如:Fragment)生命週期統計。

// viewName 表示自定義的頁面名
public static void onPageStart(String viewName);
public static void onPageEnd(String viewName);

手動統計Fragemnt頁面的例子代碼:

// Fragment頁面onResume函數重載
public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("MainScreen"); //統計頁面("MainScreen"爲頁面名稱,可自定義)

}

// Fragment頁面onPause函數重載
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("MainScreen");
}

至此,完成了基本的集成功能。

不過對於 activity + fragment 架構的項目,需要考慮到幾種特殊的情況,才能正確的統計 fragment 頁面。

解決方案請參考:當友盟統計遇上Fragment


添加 baidu 渠道

這部分內容就不再討論了,請參考Android 開發–多渠道打包實現


baidu 渠道的 release 版安裝

  • 選擇 release 版構建類型

在這裏插入圖片描述

  • usb連接手機進行安裝,同時能看到生成的 release 版apk,如下:

在這裏插入圖片描述
然後我們打開使用一段時間。


查看友盟統計數據

經過一段時間的使用後,友盟平臺的統計數據就可以看到了,如下:

在這裏插入圖片描述

頁面訪問數據當天創建的應用看不到,得第二日了,這裏就不給出了。

至此,我們就成功的集成了友盟的基礎統計功能。

本文只是教大家簡單的集成使用,後面同學們可以完善添加更多的高級統計功能。


技術永不眠,我們下期見!

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