背景
- 準備個人 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,如下:
然後我們打開使用一段時間。
查看友盟統計數據
經過一段時間的使用後,友盟平臺的統計數據就可以看到了,如下:
頁面訪問數據當天創建的應用看不到,得第二日了,這裏就不給出了。
至此,我們就成功的集成了友盟的基礎統計功能。
本文只是教大家簡單的集成使用,後面同學們可以完善添加更多的高級統計功能。
技術永不眠,我們下期見!