ANR的分析
導致ANR的幾種情況
KeyDispatchTimeout(5s):按鍵或觸控事件在特定時間內無法處理完成
BroadcastTimeout(前臺10s,後臺60s):廣播在特定時間內無法處理完成
ServiceTimeout(前臺20S,200S後臺):服務在特定的時間無法處理完成另外還有ProviderTimeout看門狗和等導致的ANR
常見的原因
A.耗時操作,如複雜的layout,龐大的for迴圈,IO等。 B.被Binder 對端block C.被子執行緒同步鎖block D.Binder被佔滿導致主執行緒無法和SystemServer通訊 E.得不到系統資源(CPU/RAM/IO) 其中ABCD比較好分析,而E比較困難。
應用ANR產生的時候,ActivityManagerService的appNotResponding方法就會被呼叫,然後在檔案中寫入/data/anr/traces.txt ANR相關資訊。
通常發生了ANR,ActivityManager會列印報錯資訊:
日誌分析:
ANR日誌列印了的基本資訊,我們可以分析CPU使用率得知ANR的簡單情況;如果CPU使用率很高,100%接近,可能在進行大規模的計算更可能的英文陷入死迴圈;如果使用CUP率很低,說明主執行緒被阻塞了,並且當IOWAIT很高,可能是主執行緒在等待I / O操作的完成。
對於ANR只是分析日誌很難知道問題所在,我們還需要透過跟蹤檔案分析棧呼叫情況。
traces.txt是如何生成的
當APP(APP包括系統和使用者APP)程式出現ANR,應用響應慢或看門狗的監視沒有得到回饋時,系統會傾倒此時的程式之上,執行緒程式中的執行狀態就都到這個跟蹤轉儲檔案中了。每次發生ANR,這個檔案都會被清空,寫入新的內容。如果想檢視以前發生ANR的資訊,可以去檢視檔案DB。
DropBox中的日誌
traces.txt只保留最後一次發生時的資訊ANR的Android 2.2開始增加了功能的Dropbox,保留歷史上發生的所有的ANR日誌。
“/資料/系統/保管箱” DB是指定的檔案存放位置。
天3日誌儲存的最長時間
原文:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2820270/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android ANR日誌分析指南Android
- 乾貨:ANR日誌分析全面解析
- 教你如何 分析 Android ANR 問題Android
- [轉]Android ANR 分析解決方法Android
- Android-ANR總結及日誌分析Android
- Android ANRAndroid
- Android中的ANR簡述Android
- 瞭解 Android ANRAndroid
- Android中的ANR用法詳解Android
- ANR原因及解決方法
- 看完這篇 Android ANR 分析,就可以和麵試官裝逼了!Android
- Android學習筆記·ANRAndroid筆記
- Android App 優化之 ANR 詳解AndroidAPP優化
- Android之ANR異常Application Not ResponseAndroidAPP
- TSM win下ANR0110E的解決
- 得物App ANR監控平臺設計APP
- android ANR產生原因和解決辦法Android
- Application.onCreate()會造成Service啟動ANR麼?APP
- 專案中多次操作SharedPreferences導致ANR場景的解決
- Android效能優化(七)之你真的理解ANR嗎?Android優化
- LTE-5G學習筆記3---ANR策略配置筆記
- Android兩種常見錯誤-ANR和FC(Force close)Android
- 深入理解 Android ANR 觸發原理以及資訊收集過程Android
- 給你一個Demo 看看這時你要怎麼快速定位ANR?
- Android-AsyncTask及UncaughtExceptionHandler捕獲全域性性異常(ANR、FC)AndroidException
- TSM 5.4 ANR0110E An unexpected system date has been detected 問題的解決
- 主執行緒中的Looper.loop()一直無限迴圈為什麼不會造成ANR?執行緒OOP
- 分析建模中的行為分析
- ANR2968E Database backup terminated. DB2 sqlcode: -2033. DB2 sqlerrmc: 106DatabaseDB2SQL
- casbin的分析
- 詞法分析的前奏:字元分析(三)詞法分析字元
- 谷歌分析中的營銷歸因分析功能(翻譯自谷歌分析的playbook)谷歌
- JVM的逃逸分析JVM
- Istio 的配置分析
- MySQL的索引分析MySql索引
- FFmpeg的IO分析
- scrollHeight的分析
- Fowler的分析模式模式