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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章