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)空指針操作內核。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM