實時log
1. 抓取應用程式的日誌。
# adb logcat -b main -v threadtime > /sdcard/main.log
2. 抓取跟 radio/telephony 相關的資訊。
# adb logcat -b radio -v threadtime > /sdcard/radio.log
3. 抓取系統事件日誌,如觸屏事件。
# adb logcat -b events -v threadtime > /sdcard/events.log
4. 抓取kernel log。
# adb logcat -b kernel > /sdcard/kernel.log
# adb shell dmesg > /sdcard/dmesg.log //匯出當前快取的 kernel log
# adb shell kmsgcat //實時檢視kernel log
# adb shell cat /proc/kmsg > kernel.log // 抓取 printk生成的核心訊息
5. 抓取 TCP/IP協議相關的日誌
# adb shell tcpdump -s 10000 -w /sdcard/tcpip.pcap
狀態log
1.獲取系統狀態資訊,如手機的記憶體資訊、CPU資訊、快取等。
# adb shell dumpstate > /sdcard/dumpstate.log
2. 獲取系統程式有關的資訊。比如:當前執行的服務,程式資訊等。
# adb shell dumpsys
如果想檢視特定程式的特定service ,如 com.android.mms程式的meminfo,可以使用
# adb shell dumpsys meminfo com.android.mms
service有一下幾種:
meminfo 顯示記憶體資訊
cpuinfo 顯示CPU資訊
account 顯示accounts資訊
activity 顯示activities的資訊
window 顯示鍵盤,視窗和它們的關係
wifi 顯示wifi資訊
3. 獲取 所有狀態資訊。包括 dumpsys,dmesg和dumpstate
# adb shell bugreport > /sdcard/bugreport.log
4. 檢視記憶體資訊
# adb shell cat /proc/meminfo
# adb shell cat /proc/vmstate //檢視虛擬記憶體資訊
log 分析
1. 有沒有捕獲異常
關鍵字: Exception
2. ANR
ANR的log一般都位於 /data/anr/,
關鍵字: ANR
例子: E/ActivityManager( 957): ANR in com.ipanel.join.appstore
3. Fatal
Fatal 一般比較嚴重,很多都很動態庫和空指標有關,一般會接下來列印"Build fingerprint:" 或 ”NullPointerException“
4. 動態庫問題
關鍵字: Build fingerprint
5. 空指標問題
關鍵字:NullPointerException
6. kernel panic
只有載入到核心空間的驅動模組才能直接導致kernel panic,你可以在系統正常的情況下,使用lsmod檢視當前系統載入了哪些模組。
除此之外,內建在核心裡的元件(比如memory map等)也能導致panic。
kernel panic分為 兩種:
hard panic(關鍵字: Aieee)
soft panic(關鍵字: Oops)
參考: http://www.chengxuyuans.com/Android/64872.html
7.tombstone
tombstone 一般是由Dalvik錯誤,狀態監視偵錯程式,C層程式碼以及libc的一些問題導致的。
當系統發生tombstone的時候,kernel首先會上報一個嚴重的警告訊號(signal),上層接收到之後,程式的除錯工具會把程式中當時的呼叫棧現場儲存起來,並在系統建立了data/tombstones目錄後把異常時的程式資訊寫在此目錄裡面,開發者需要通過呼叫棧來分析整個呼叫流程來找出出問題的點。
日誌路徑: /data/tombstones
8. system crash
kernel log會出現: service 'activity' died
‘activity' 可以是任意的activity。
幾種issue的區分
1. kernel panic:板子會reset到固定頁面,如"EMMD USB DUMP"。
2. System hang: 觸控按壓沒有任何反應,console沒有輸出。
3. UI hang: 系統UI沒有任何反應,但是console或者adb shell 有輸出。
4. system crash: 可能會自動重啟。