Android中最簡單的整合騰訊Bugly
專案中使用到整合騰訊的Bugly方便應用的版本管理,崩潰日誌的檢視和熱更新的應用,研究了一下寫出來了:
庫檔案匯入
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分成以下幾步來完成:
1:在Module的build.gradle檔案中新增依賴和屬性配置:
dependencies {
//如果你只需要繼承單個的SDK
compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本號,也可以指定明確的版本號,例如2.2.0
}
2:同時整合SDK和NDK
在Module的build.gradle(也就是APP下的)檔案中新增依賴和屬性配置:
android { compileSdkVersion 26 defaultConfig { applicationId "com.choicelean.superwinner" minSdkVersion 19 targetSdkVersion 26 versionCode 2 versionName "1.1" ndk { //設定Bugly支援的SO庫架構,就是下面的架構導致系統自帶的虛擬機器不能使用,可以自己根據需要自動更改 abiFilters 'armeabi-v7a'//有'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'幾個選項可以選擇 } testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
dependencies {
//開始的時候我按照下面的騰訊官方設定,AndroidStudio老是報錯,出問題
compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本號,也可以指定明確的版本號,例如2.1.9
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新Bugly NDK版本號,也可以指定明確的版本號,例如3.0
所以查閱了很多資料才發現可以這樣寫:
//bugly
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'
//其中latest.release指代最新版本號,也可以指定明確的版本號,例如1.2.0
compile 'com.tencent.bugly:nativecrashreport:latest.release'
}
}
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" />
注:如果您的App需要上傳到
google play store
,您需要將READ_PHONE_STATE
許可權遮蔽掉或者移除,否則可能會被下架。
- 請避免混淆Bugly,在Proguard混淆檔案中增加以下配置:
# 9. 騰訊bugly,請避免混淆Bugly,在Proguard混淆檔案中增加以下配置: -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} -keep class android.support.**{*;}
4:最後一步也是最重要的
獲取APP ID並將以下程式碼複製到專案Application類onCreate()中,Bugly會為自動檢測環境並完成配置:
下面的是我專案中應用的資訊(APPID就是下面的這個):
Beta.autoInit = false;//在mainActivity中檢查
Bugly.init(getApplicationContext(), "你自己的APPID", true(當專案上線時可以設定成false));
為了保證運營資料的準確性,建議不要在非同步執行緒初始化Bugly。
第三個引數為SDK除錯模式開關,除錯模式的行為特性如下:
- 輸出詳細的Bugly SDK的Log;
- 每一條Crash都會被立即上報;
- 自定義日誌將會在Logcat中輸出。
建議在測試階段建議設定成true,釋出時設定為false。
5:測試Bugly是否整合成功:
為了測試我們的Bugly整合是否完成 (我把versionCode改成2,VersionName改成1.2)登陸騰訊Bugly官網:
當檢視到如下資訊的時候說明我們的應用整合成功了。
6:檢視程式崩潰的資訊:
當我們的應用開發完成之後就可以利用Bugly來檢視使用者使用我們的程式的時候的崩潰的情況,比如我的應用中
出現一個OOM記憶體溢位的時候就會上傳到網上,我們不用對接使用者資訊就可以看到我們應用崩潰的詳細情況如下:
這樣我們就能根據相應的日誌資訊來檢查我們程式中出現的BUG進而快速修改。