Android平臺程式崩潰的型別及原因列舉
Android平臺程式崩潰大家都應該遇到過,force close和ANR應該是大家遇到較多的。
這裡把Android平臺程式崩潰的各種型別做一個簡述和原因列舉。
1.ANR(可見ANR):
發生場景:應用發生ANR。
崩潰症狀:系統彈出視窗詢問使用者選擇“Force Close”或者“Wait”。
“Force Close”將殺掉髮生ANR的應用程序。“Wait”將會等待系統擇機恢復此應用程序。
發生原因:(1)應用主執行緒卡住,對其他請求響應超時。(2)死鎖。(3)系統反應遲鈍。(4)CPU負載過重。
2.Force Close:
發生場景:應用程序崩潰。
崩潰症狀:系統彈出視窗提示使用者某程序崩潰。
發生原因:空指向異常或者未捕捉的異常。
3.Tombstones:
發生場景:Native層崩潰
崩潰症狀:如果發生崩潰的native層和UI有關聯(比如Browser),我們可以在UI上發現這個崩潰。
如果發生崩潰的native層是在後臺並且和UI沒有直接聯絡,那麼對於使用者來說是不可見的,如果是debug版本可能會有Log打印出當時的底層現場。
發生原因:各種各樣,需要具體情況具體分析。
4.系統服務崩潰(System Server Crash):
發生場景:系統服務是Android核心程序,此服務程序發生崩潰。
崩潰症狀:手機重啟到Android啟動介面
發生原因:(1)系統服務看門狗發現異常。(2)系統服務發生未捕獲異常。(3)OOM。(4)系統服務Native發生Tombstone。
5.Kernel Panics:
發生場景:Linux核心發生嚴重錯誤
崩潰症狀:手機從bootloader開始完全重啟
發生原因:(1)Linux核心記憶體空間發生記憶體崩潰。(2)核心看門狗發現異常。(3)空指標操作核心。
轉載自:http://www.cnblogs.com/mobile-veterans