1. 程式人生 > >Android平臺程式崩潰的型別及原因列舉

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