ANR日誌分析

2021-08-21 01:25:08 字數 955 閱讀 4819

一:前言

最近發現好多人不會從日誌中找到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盤上...