天天看點

Bugly Android SDK 接入

參考官方文檔:https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20200622202242

庫檔案導入

Bugly支援自動內建和手動內建兩種方式,如果您使用Gradle編譯Apk,我們強烈推薦您使用自動接入方式配置庫檔案。

自動內建(推薦)(官方不推薦手動接入,如要請自行檢視)

Bugly支援JCenter倉庫和Maven Central倉庫。為了實作更加靈活的配置,Bugly SDK(2.1.5及以上版本)和NDK(SO庫)目前已經分開成兩個獨立的倉庫:

  • SDK:com.tencent.bugly:crashreport
  • NDK:com.tencent.bugly:nativecrashreport

其中,內建Bugly NDK時,需要同時內建Bugly SDK。

同時內建SDK和NDK(如隻想接入SDK,可檢視官方)

在Module的build.gradle檔案中添加依賴和屬性配置:

android {
    defaultConfig {
        ndk {
            // 設定支援的SO庫架構
            abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
        }
    }
}

dependencies {
    implementation 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
    implementation 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
}
           

同時內建Bugly SDK和NDK的配置如下圖所示,後續更新Bugly SDK和NDK時,隻需變更配置腳本中的版本号即可。

參數配置

  • 在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" />
           
注:如果您的App需要上傳到

google play store

,您需要将

READ_PHONE_STATE

權限屏蔽掉或者移除,否則可能會被下架。
  • 請避免混淆Bugly,在Proguard混淆檔案中增加以下配置:
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
           

以上就是三步環境配置完成,下面是使用階段

最簡單的初始化

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

CrashReport.initCrashReport(getApplicationContext(), "注冊時申請的APPID", false); 
           

為了保證營運資料的準确性,建議不要在異步線程初始化Bugly。

第三個參數為SDK調試模式開關,調試模式的行為特性如下:
  • 輸出詳細的Bugly SDK的Log;
  • 每一條Crash都會被立即上報;
  • 自定義日志将會在Logcat中輸出。
建議在測試階段建議設定成true,釋出時設定為false。
Bugly Android SDK 接入

此外,Bugly2.0及以上版本還支援通過“AndroidManifest.xml”來配置APP資訊。如果同時又通過代碼中配置了APP資訊,則最終以代碼配置的資訊為準。

在“AndroidManifest.xml”的“Application”中增加“meta-data”配置項:

<application
    <!-- 配置APP ID -->
    <meta-data
            android:name="BUGLY_APPID"
            android:value="<APP_ID>" />
    <!-- 配置APP版本号 -->
    <meta-data
            android:name="BUGLY_APP_VERSION"
            android:value="<APP_Version>" />
    <!-- 配置APP管道号 -->
    <meta-data
            android:name="BUGLY_APP_CHANNEL"
            android:value="<APP_Channel>" />
    <!-- 配置Bugly調試模式(true或者false)-->
    <meta-data
            android:name="BUGLY_ENABLE_DEBUG"
            android:value="<isDebug>" />
</application>
           

不同于“android:versionName”,“BUGLY_APP_VERSION”配置的是Bugly平台的APP版本号。

通過“AndroidManifest.xml”配置後的初始化方法如下:

CrashReport.initCrashReport(getApplicationContext());
           

Bugly預設從“AndroidManifest.xml”檔案中讀取“VersionName”作為版本号,自定義設定請使用參考“進階設定”。

MultiDex注意事項,增加上報程序控制和測試結果等,都可以去官方檢視,最終以官方為主。此為簡略記錄。