常用獲取Android崩潰日誌和IOS崩潰日誌的幾種方法

2020-08-13 15:16:50

常用獲取Android崩潰日誌和IOS崩潰日誌的幾種方法

一:前言

在日常測試app時,經常會遇到崩潰問題,測試快速抓取到崩潰日誌可以有效方便開發進行定位,快速解決問題所在
測試做到測試分析,定位是非常重要的,這也是判斷一個測試能力指標的一大維度。

 

二:Android崩潰日誌

 

一、通過adb logcat獲取

 

# 清除日誌,新手上路時,日誌內容很多,對於能畢現的日誌,可以先清除後重新獲取
adb logcat -c
# 然後再次執行崩潰操作,再抓取日誌
# 儲存日誌到當前目錄下的 carsh.log 中
adb logcat -d *:W > crash.log 
# W指的是警告以上日誌
# 這個日誌檔案包含了所有列印的日誌,需要自己篩選下崩潰日誌,比如搜尋 begin、crash、Exception
# 爲了更精確的篩選日誌,可以加入篩選條件
adb logcat -d *:W grep 「包名」 >crash.log

 

二、通過Android Studio

在logcat中檢視實時日誌,需要選擇連線的手機和應用包名

三、通過adb shell dumpsys dropbox命令獲取

封裝成shell指令碼,可以快速列印最新的崩潰日誌

#!/bin/bash
# path="/data/system/dropbox"   # 在手機這個目錄下儲存了崩潰日誌
newest_time=$(adb shell dumpsys dropbox | grep 'data_app_crash' | awk 'END {print $1,$2}')
adb shell dumpsys dropbox --print ${newest_time}
# echo -e "時間是:${newest_time}"

 

四、獲取ANR日誌

# 在/data/anr/目錄下儲存所有了ANR日誌
adb pull /data/anr/ ~/Downloads

 

五、常見日誌類別

常見的異常:javaException(runtimeException):

NullPointerException-空指針參照異常

ClassCastException-型別強制轉換異常。

IllegalArgumentException-傳遞非法參數異常。

ArithmeticException-算術運算異常

ArrayStoreException-向陣列中存放與宣告型別不相容物件異常

IndexOutOfBoundsException-下標越界異常

NegativeArraySizeException-建立一個大小爲負數的陣列錯誤異常

NumberFormatException-數位格式異常

SecurityException-安全異常

UnsupportedOperationException-不支援的操作異常

 

 

 

 

二:iOS崩潰日誌

一、iOS手機上獲取崩潰日誌

 路徑:設定 -> 隱私 -> 分析 -> 分析數據

這裏可以獲取手機上的所有崩潰日誌。不過日誌是密文,需要在xcode中開啓,會自動翻譯成明文。

二、在xcode中開啓崩潰日誌

 開啓xcode,選單欄選擇window,選擇 Devices and Simulators,點選View Device Logs,可以看到日誌列表。

在日誌中主要看Last Exception Backtrace(即發生崩潰的原因,也是我們要研究的重點) 預設是密文,開啓後xcode會翻譯成明文,需要等待幾秒。

 

 

三、通過iTunes同步後獲取崩潰日誌

 路徑:

Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/
可以看到所有和該電腦同步過的裝置的崩潰日誌(.crash檔案)