Android常用工具之Bugly的使用


bugly是什么?百度百科上對bugly的介紹 總結下來是:騰訊的開放給開發者的一種平台服務,主要用於android和ios平台上的移動應用的crash和卡頓檢測和快速定位以及提供解決方案。是免費服務。

而用過的人都知道,除了crash檢測外,bugly還提供應用內升級和熱修復等功能。

一切以官方文檔為准:https://bugly.qq.com/docs/

Q:文檔介紹得很詳細了,為什么要寫這篇文章?

A:這篇文章是對文檔的部分內容的歸納,因而更簡練。某些操作直接已步驟形式列出,沒有多余的解釋。僅供記錄和之后學習參考使用,畢竟看文檔是件麻煩事,記錄一下還能提升認識。

-----link start-----

bugly不是一個SDK,而是多個sdk的集合。下面講述Android平台上異常上報SDK、應用升級SDk的配置使用。

一 異常上報SDK集成

異常上報(bugly:crashreport)SDK:2.6.6 更新日志

1.導入到開發環境

  AS的開發環境眾所周知,有兩種方式可以導入包和庫。

dependencies {
    compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本號,也可以指定明確的版本號,例如2.2.0
}

或者到這里下載jar包:https://bugly.qq.com/docs/release-notes/release-android-bugly/

  需要的權限清單

<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" />

  混淆配置

-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}

  從混淆配置可看到,bugly要求keep其包下所有代碼,說明bugly已做過混淆

2.代碼配置

第一步肯定是要調用類似於某個類的靜態初始化方法的。

CrashReport.initCrashReport(getApplicationContext(), "注冊時申請的APPID", false);//第三個參數為調試模式開關,開發調試時可為true

 

初始化代碼建議放在Application中。文檔建議:為了保證運營數據的准確性,建議不要在異步線程初始化Bugly。

調試模式特點:

  • 輸出詳細的Bugly SDK的Log;
  • 每一條Crash都會被立即上報;
  • 自定義日志將會在Logcat中輸出。

另外,初始化方法還有一個重載的。

CrashReport.initCrashReport(getApplicationContext());

 

如果用這個方法,那么像APPID,調試開關等配置就需要放在其他地方了。

<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>

 

3.MultiDex注意事項

4.上報進程控制

大概的意思是,如果在Application中直接調用bugly的初始化代碼,之后如果有多進程,則每個進程都會上報一些相同的report,為了避免網絡資源浪費,最好控制上報的進程僅一個,即主進程。

代碼看文檔吧

到這兒,基本操作就是這些了。

CrashReport.testJavaCrash();

 

這行代碼會制造一個運行時異常,可以作為測試用。

二  應用升級SDK

官方指南

 

 

----logout---

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM