抓取Android APP崩潰和無響應日誌的小工具

前言android

 

在Android APP的測試過程當中常常遇到crash和anr,開發人員習慣經過eclipse或者eclipse的ddms組件進行捕抓日誌,測試人員常經過在dos窗口下adb命令的方式來抓取日誌。前者的缺點是啓動時很是耗時,後者呢則每次都要寫命令也比較麻煩(須要截圖時也存在這個問題)。eclipse

針對這樣的狀況,本文分享一個經過adb程序與bat命令組合的技巧來抓取日誌,只要3~5秒便可獲取崩潰日誌,很是快捷。工具

 

1. 準備工做測試

1、安裝JDK(好像不裝也不要緊,未實測)和ADB(V1.0.31版本或以上),網上不少指導方法,這裏就贅述了。spa

2、在PATH環境變量中添加ADB路徑。這樣就能在任意地方調用ADB命令,如adb.exe的位置在c:\adb\adb.exe,則在path中加入c:\adb。.net

 

2. 製做捕獲日誌的批命令3d

1、製做捕獲crash異常的批命令調試

將如下命令複製,製做成logcat.bat文件。logcat.bat能夠放置任意位置(如:桌面)。日誌

1code

2

3

4

5

6

7

@ECHO OFF

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value'do set "dt=%%a"

SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%

SET mutID=_mut

@ECHO ON

adb logcat -v time > .\"%mutID%_%timeStamp%_logcat.log"

pause

原理:

該工具的原理是bat文件調用adb工具,將手機運行日誌拉到本地,並將實時日誌也記錄到本地。

用法:

當手機須要重現crash、或者x分鐘內已經發生過crash(x≈15~30),點擊此bat,logcat命令會將手機的logcat日誌拉下來並實時記錄,直到你關閉cmd窗口。而後在拉下來的txt中尋找fatal字眼,附近上下文即爲crash日誌。

2、製做捕獲ANR異常的批命令

anr:Application Not Responding -- 程序無響應。

將如下命令複製,製做成「ANR捕獲.bat」文件。「ANR捕獲.bat」能夠放置任意位置(如:桌面)。

1

2

3

4

5

6

@ECHO OFF

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value'do set "dt=%%a"

SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%

SET mutID=_mut

@ECHO ON

adb pull data/anr/traces.txt traces_%timeStamp%.txt

原理:

同上,將手機的traces.txt拉到本地。手機發生anr以後能夠用,但通常用不上。

 

3、優勢與限制

  1. 手機無需root

  2. 無需eclipse支持

  3. 方便保存、查找日誌

  4. 實時日誌不能在cmd窗口回顯

3. 演示

以抓取crash異常爲例:

步驟1:將android手機鏈接電腦,開啓開發者模式並容許usb調試;

步驟2:運行logcat.bat文件,會出現cmd窗口;

步驟3:①若是手機程序已經發生過crash,5秒後關閉cmd窗口;②若是是想重現crash,則在手機端重現後便可關閉cmd窗口。

步驟4:在logcat.bat的同級目錄下會生成一份log文件,從文件中搜查FATAL關鍵字,即可找到崩潰代碼。

 

https://img.mukewang.com/5c3df73300013be507170028.jpg

點擊查看更多內容

做者:青春的小奮鬥 連接:http://www.imooc.com/article/274028 來源:慕課網 本文原創發佈於慕課網 ,轉載請註明出處,謝謝合做

相關文章
相關標籤/搜索