Android日志[进阶篇]四-获取错误报告
Android日志[進(jìn)階篇]一-使用 Logcat 寫入和查看日志
Android日志[進(jìn)階篇]二-分析堆棧軌跡(調(diào)試和外部堆棧)
Android日志[進(jìn)階篇]三-Logcat命令行工具
Android日志[進(jìn)階篇]四-獲取錯誤報告
Android日志[進(jìn)階篇]五-閱讀錯誤報告
目錄
- 前言
- 從設(shè)備上獲取錯誤報告
- 從 Android 模擬器上獲取錯誤報告
- 使用 adb 獲取錯誤報告
- 檢查錯誤報告 ZIP 文件
- 從用戶那里獲取報告
- 騰訊Bugly
- 友盟
- Google Play 管理中心
- Firebase 崩潰報告
前言
大多數(shù)人都習(xí)慣斷點調(diào)試,斷點復(fù)現(xiàn),但往往效率低下且面對上線后出現(xiàn)的問題無從下手,本文介紹錯誤日志的獲取,logcat之外的日志,也就是線上運行日志或用戶設(shè)備的日志。
錯誤報告包含設(shè)備日志、堆棧軌跡和其他診斷信息,可以幫助我們查找和修復(fù)應(yīng)用中的錯誤。通過以下幾種方式可以從設(shè)備上獲取錯誤報告:使用設(shè)備上的生成錯誤報告開發(fā)人員選項、Android 模擬器菜單或開發(fā)機(jī)器上的 adb bugreport 命令。
圖 1. 開發(fā)人員選項
如需生成錯誤報告,必須在設(shè)備上啟用開發(fā)者選項,以便訪問生成錯誤報告(提交錯誤報告)選項。
從設(shè)備上獲取錯誤報告
圖 2. 錯誤報告已準(zhǔn)備就緒
如需直接從設(shè)備上獲取錯誤報告,請執(zhí)行以下操作:
接著收集并提取相關(guān)的錯誤報告,可以從狀態(tài)欄中看到這個過程,也可以重新命名報告的最終文件名,稍后,便會收到錯誤報告已準(zhǔn)備就緒的通知(參見圖 2)。
從 Android 模擬器上獲取錯誤報告
在 Android 模擬器中,使用“Extended controls”窗口中的 File a bug 功能:
在 Extended controls 窗口中,選擇左側(cè)的 Bug report。
此時系統(tǒng)會打開一個屏幕,可以在其中查看錯誤報告詳細(xì)信息,例如屏幕截圖、AVD 配置信息和錯誤報告日志。還可以輸入一條包含重現(xiàn)步驟的消息,以便與報告一起保存。
等待錯誤報告完成收集,然后點擊 Save Report。
使用 adb 獲取錯誤報告
如果只連接了一臺設(shè)備,則可以使用 adb 獲取錯誤報告,如下所示:
$ adb bugreport E:\Reports\MyBugReports如果沒有指定錯誤報告的路徑,系統(tǒng)會將其保存到本地目錄。
如果連接了多臺設(shè)備,則必須使用 -s 選項指定設(shè)備。運行以下 adb 命令可獲取設(shè)備序列號并生成錯誤報告。
$ adb devicesList of devices attached
emulator-5554 device 8XV7N15C31003476 device $ adb -s 8XV7N15C31003476 bugreport檢查錯誤報告 ZIP 文件
默認(rèn)情況下,ZIP 文件稱為 bugreport-BUILD_ID-DATE.zip (bugreport-ANE-AL00-HUAWEIANE-AL00-2021-09-10-17-00-09.zip),它可能會包含多個文件,但最重要的文件是 bugreport-BUILD_ID-DATE.txt (bugreport-ANE-AL00-HUAWEIANE-AL00-2021-09-10-17-00-09.txt)。此文件就是錯誤報告,它包含系統(tǒng)服務(wù) (dumpsys)、錯誤日志 (dumpstate) 和系統(tǒng)消息日志 (logcat) 的診斷輸出。系統(tǒng)消息包括設(shè)備拋出錯誤時的堆棧軌跡,以及從所有應(yīng)用中使用 Log 類寫入的消息。
ZIP 文件中有一個 version.txt 元數(shù)據(jù)文件,其中包含 Android 版本號,而且啟用 systrace 后,ZIP 文件中還會包含 systrace.txt 文件。Systrace 工具 可以獲取并顯示應(yīng)用進(jìn)程和其他 Android 系統(tǒng)進(jìn)程的執(zhí)行時間,從而幫助分析應(yīng)用的性能。
dumpstate 工具會將文件從設(shè)備的文件系統(tǒng)復(fù)制到 ZIP 文件的 FS 文件夾下,以便引用它們。例如,設(shè)備中的 /dirA/dirB/fileC 文件會在 ZIP 文件中生成 FS/dirA/dirB/fileC 條目。
圖 3. 錯誤報告文件結(jié)構(gòu)
如需了解詳情,請參閱Android日志[進(jìn)階篇]五-閱讀錯誤報告。
從用戶那里獲取報告
如上所述,開發(fā)者使用應(yīng)用時,獲取錯誤報告非常有用,但最終用戶無法輕松地與您分享這些類型的錯誤報告。如需從真實用戶那里獲取包含堆棧軌跡的崩潰報告,應(yīng)該利用 Google Play 和 Firebase 的崩潰報告功能。國內(nèi)一般使用騰訊bugly和友盟的sdk完成。
騰訊Bugly
支持android 和ios ,文檔入口 ,app 需要集成Bugly的SDK,文檔有關(guān)于android studio和eclipse的集成說明,同時支持離線sdk和遠(yuǎn)程倉庫的依賴,請更新需要進(jìn)行選擇。集成完成以后留意bugly的應(yīng)用運行情況,可以查看到崩潰記錄以及堆棧信息。
友盟
也支持android 和ios,文檔入口-應(yīng)用性能監(jiān)控 U-APM,app也需要集成友盟的sdk后進(jìn)行發(fā)布。當(dāng)然需要的帳號需要各位自行去了解和申請。
Google Play 管理中心
由于各種不方便,這個國內(nèi)基本沒人使用,
可以從 Google Play 管理中心獲取報告,以便查看從 Google Play 安裝應(yīng)用的用戶那里收集的有關(guān)崩潰和應(yīng)用無響應(yīng) (ANR) 錯誤的數(shù)據(jù)。可以查看過去六個月的數(shù)據(jù)。
如需了解詳情,請參閱 Play 管理中心幫助中心內(nèi)的查看崩潰和應(yīng)用無響應(yīng) (ANR) 錯誤。
Firebase 崩潰報告
Firebase Crashlytics 報告會創(chuàng)建有關(guān)應(yīng)用中出現(xiàn)的錯誤的詳細(xì)報告。此報告會基于錯誤是否具有相似堆棧軌跡將其分門別類,并根據(jù)錯誤對用戶所產(chǎn)生影響的嚴(yán)重程度進(jìn)行分級。除自動發(fā)送的報告外,您還可以通過記錄自定義事件獲知導(dǎo)致應(yīng)用崩潰的操作。
需<將 Firebase 依賴項添加到 build.gradle 文件,即可開始接收用戶發(fā)送的崩潰報告。如需了解詳情,請參閱 Firebase Crashlytics。
總結(jié)
以上是生活随笔為你收集整理的Android日志[进阶篇]四-获取错误报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apache缺省banner_http服
- 下一篇: 背景图层和普通图层的区别_图层样式(一)