Android神兵利器 | ChkBugReport輸出網頁版錯誤報告

-- 做者 謝恩銘 轉載請註明出處javascript

內容簡介


  1. 前言
  2. 難讀的 BugReport
  3. ChkBugReport來拯救你
  4. 寫一個 Shell 快捷方式
  5. 總結

1. 前言


從事 Android(嵌入式)開發,也許常要和 BugReport 打交道。html

BugReport 是由 Bug 和 Report 這兩個英語單詞組成。bug 是英語「瑕疵,錯誤」的意思,在計算機領域專指程序中的問題。report 是英語「報告」的意思。java

顧名思義,BugReport 就是「錯誤報告」的意思。不過,真實的 BugReport 不單單記錄錯誤,不一樣級別的日誌也會記錄下來,方便咱們 debug。android

通常來講 Android 的 BugReport 是 .txt 結尾的文本文件,好比咱們公司的 Android app 裏的 BugReport 就是命名爲 bugreport.txt。固然了,命名沒有限定。git

Google 的 Android 主頁上有專頁論述如何閱讀 BugReport :source.android.com/source/read…程序員

上面的頁面推薦好好閱讀下,對你排查 Android 的問題頗有幫助。github

2. 難讀的 BugReport


Android 的 BugReport 裏面包含了 dumpsys,dumpstate,logcat 命令輸出的結果。內容通常來講會不少。shell

要生成一個 BugReport,咱們能夠運行如下命令:vim

adb bugreport > bugreport.txt複製代碼

通常的 BugReport 是這樣的:瀏覽器

這樣的:

是否是以爲很難閱讀呢?有點望而卻步的感受。

3. ChkBugReport來拯救你


幸虧,咱們有一個免費開源的小軟件來拯救你。

這個軟件是索尼(Sony)公司開發的,開源在 Github 上:github.com/sonyxperiad…

這個軟件名叫 ChkBugReport。Chk 是 check 的縮寫,表示「檢查」。

ChkBugReport 並無什麼安裝程序或腳本,只有一個 JAR 包供下載。

軟件下載連接:github.com/sonyxperiad…

咱們下載最新版,下載下來是這樣一個文件:

要用它來解析 BugReport 文件並生成網頁版報告,須要用 java 命令(請先安裝和配置 Java 開發環境,網上有不少圖文教程,就不贅述了):

java -jar $HOME/chkbugreport.jar $HOME/bugreport.txt複製代碼

$HOME 是一個環境變量,指示了你的家目錄的路徑。

ChkBugReport 會爲你生成一個文件夾,叫作 bugreport_out,文件夾裏有個 index.html 文件,這就是咱們的錯誤報告的網頁了,是一個 HTML 文件。

你能夠雙擊啓動它 (若是你設置了 .html 文件用瀏覽器程序啓動的話), 或者用命令行,好比我用 firefox 瀏覽器來啓動這個 HTML 文件:

firefox bugreport_out/index.html複製代碼

打開後的網頁以下所示,有不少欄目:

能夠查看每個欄目,好比查看 System log 中的 log :

4. 寫一個 Shell 快捷方式


難道每次咱們啓動 ChkBugReport 都要附上那個 JAR 包的路徑嗎?豈不是太麻煩。

不要緊,咱們能夠寫一個 Shell 腳原本做爲快捷啓動方式。

首先咱們把 chkbugreport-0.4-185.jar 更名爲 chkbugreport.jar,並把它放到 $HOME/bin 目錄中:

mv $HOME/chkbugreport-0.4-185.jar $HOME/bin/chkbugreport.jar複製代碼

而後建立一個 Shell 腳本,起名叫 chkbugreport 好了,也放在 $HOME/bin 目錄中 :

vim $HOME/bin/chkbugreport複製代碼

在腳本中加入如下代碼:

#!/bin/sh

DIR=$HOME/bin
JAR=$DIR/chkbugreport.jar
CP=$JAR

if [ ! -f $JAR]; then
    echo "爲了這個腳本可以運行,請把下載的 ChkBugReport 的 JAR 包拷貝到 $JAR 中"
    exit 1
fi

java -jar $CP "$@"複製代碼

爲腳本添加可執行權限:

chmod +x $HOME/bin/chkbugreport複製代碼

確保 $HOME/bin 這個目錄在 Path 環境變量中,請參看 Linux探索之旅 | 第五部分第二課:一入Shell深似海,酷炫外殼惹人愛

以後,你就能夠在隨便哪一個目錄中運行

chkbugreport bugreport.txt複製代碼

來生成錯誤報告的網頁版了。

5. 總結


  1. Android 因其開源特性,相比 iOS 能夠應用在更多領域,好比 嵌入式。

  2. 網上有很多 Android 開發有用的開源工具,Github 上更是一搜一大堆。善於使用工具,必將事半功倍。

  3. ChkBugReport 能夠基於 Android 的 BugReport 爲咱們輸出易讀的網頁版錯誤報告,是 HTML 格式的,能夠用瀏覽器打開。


微信公衆號「程序員聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的軟件工程師。
個人簡介
個人經歷熱愛生活,喜歡游泳,略懂烹飪。人生格言:「向着標杆直跑」

相關文章
相關標籤/搜索