天天看點

Android接入騰訊Bugly統計SDK

本來我們App是接入的友盟統計的SDK,但是确實是不太好用,上個版本iOS先接入了Ugly作為嘗試,發現與需求相符比友盟略好,是以這個版本Android要引入Bugly統計

因為熱更新功能很早之前就接了tinker,是以就沒再依賴這裡面的

步驟就是按文檔走,這裡簡單記錄一下

  1. 內建SDK 在Module的build.gradle檔案中添加依賴和屬性配置:
    dependencies {
        compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如我接入時最新版本是3.0.0
    }
               
  2. 當然也可能有使用NDK的需求,內建NDK這一步不是必要的
    android {
        defaultConfig {
            ndk {
                // 設定支援的SO庫架構
                abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
            }
        }
    }
    
    dependencies {
        compile 'com.tencent.bugly:crashreport:latest.release' //這是必須的
        compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
    }
               
  3. 在AndroidManifest.xml中添權重限
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <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_LOGS" />
               
  4. 混淆

    在Proguard混淆檔案中增加以下配置:

    -dontwarn com.tencent.bugly.**
    -keep public class com.tencent.bugly.**{*;}
               
    引入過程已經結束了,接下來是如何使用
  5. 初始化

    擷取APP ID并将以下代碼複制到項目Application類onCreate()中,Bugly會為自動檢測環境并完成配置:

    CrashReport.initCrashReport(getApplicationContext(), "注冊時申請的APPID", false);
               
    注意:
    為了保證營運資料的準确性,建議不要在異步線程初始化Bugly。
    第三個參數為SDK調試模式開關,調試模式的行為特性如下:	
        輸出詳細的Bugly SDK的Log;
        每一條Crash都會被立即上報;
        自定義日志将會在Logcat中輸出。
        建議在測試階段建議設定成true,釋出時設定為false。
               

實際上到這裡就已經結束了。當然這個初始化還能增加一個參數,參數可以攜帶管道号、包名、版本号、設定延遲等,這個參數是UserStrategy類作為Bugly的初始化擴充,在這裡您可以修改本次初始化Bugly資料的版本、管道及部分初始化行為。通過以下方式傳入:

6.

```
UserStrategy strategy = new UserStrategy(appContext);
//...在這裡設定strategy的屬性,在bugly初始化時傳入
strategy.setAppChannel("myChannel");  //設定管道
strategy.setAppVersion("1.0.1");      //App的版本
strategy.setAppPackageName("com.tencent.xx");  //App的包名  
//strategy.setAppReportDelay(20000);   //改為20s
//...
CrashReport.initCrashReport(appContext, APPID, true, strategy);
```
           

到這裡就把基本功能接入完成了,具體細節和其他進階設定參考官方文檔:Bugly官方文檔