一:前言
最近發現好多人不會從日誌中找到anr的解決方法, 在此分享乙個小技巧。
想必anr(應用程式無響應)大家都遇到過,大概有以下情況會發生:
1. dispatchtimeout輸入事件分發超時,一般是主線程在5秒之內沒有響應事件。
2. broadcasttimeout廣播超時,一般為廣播在10秒內未能執行完畢
。3. servicetimeout服務超時,一般為服務在20秒內未能執行完畢。
其實無非
就是不要在主線程中做耗時操作,比如:網路請求,資料庫操作什麼的,寫**的時候注意一下就可以大大的避免
anr發生。
二:輸出日誌
如果在發生anr時手機沒有連線著as的話, 可以用這種辦法取到anr日誌,技巧如下:
2. 執行adb pull /data/anr/traces.txt d:\traces.txt 輸出traces日誌。
三:分析日誌
1. 先看logcat輸出的日誌
檢視未果,不要浪費時間, 我們接著看trace 日誌, 看看能不能找到答案。
四:總結
其實anr並不難解決,通過分析日誌基本就可以找到答案,如果你也遇到了anr那麼嘗試用這種辦法解決試試, 看看能不能解決你的問題, 最主要的還是在寫**的時候多加注意,主線程只做重新整理ui的操作, 把一切耗時的操作都放在子執行緒裡去完成,盡量從根源上避免anr發生, 最後在這祝大家: 事業順利,上線無bug!
android 獲取anr日誌
最近發現anr檔案,結果提示無許可權。網上查了半天沒有任何提示,靈光一閃,用linux命令來獲取就可以了 rw rw rw 許可權是這樣才可以 總結了兩個方案。我手機都可以拿出來。其他手機暫時沒測過 方式1adb shell進去手機的命令列頁面 cd data anr 直接進去頁面,然後通過檢視全部...
談ANR如何分析解決ANR 2
04 01 13 12 14.123 i process 220 sending signal.pid 21404 sig 3 發生anr的時間和生成trace.txt的時間 04 01 13 12 14.123 i dalvikvm 21404 threadid 4 reacting to sig...
Android 分析ANR錯誤
只要一些類似網路連線等耗時的操作開子執行緒去跑,這樣就可以避免這個錯誤了,但是,如果現在專案的確是出現了呢。下面教你怎麼分析anr錯誤。開啟控制台 開始 執行 cmd 輸入adb pull data anr traces.txt d traces.txt,traces.txt 的檔案就會複製到d盤上...