ANR(App not respond)是Android定義的一種穩定性問題類型;系統發出關鍵消息,同時發出此消息的超時消息。處理邏輯有兩種情況:
- 關鍵消息被執行,超時消息被清除;ANR不會發生
- 超時消息被執行;觸發ANR機制,通知AMS抓取堆棧,生成dropbox內容,kill目標進程
本專欄分為以下章節詳細解析ANR:
穩定性問題ANR-input
穩定性問題ANR-廣播
穩定性問題ANR-service
穩定性問題ANR- Activity
穩定性問題ANR-provide
簡介
ANR檢測點邏輯都在system_server進程中,假設如果system_server出現hang的場景,ANR邏輯有可能就不會被觸發。而且ANR都是針對Android app的機制。因此每種機制中都會依據App當時的狀態,如前臺還是后臺等行為,進行特殊處理。