ANR分析思路簡析

2021-08-11 10:03:27 字數 676 閱讀 5294

1.anr介紹

1.2 為什麼會產生anr

1:keydispatchtimeout(谷歌default 5s,mtk平台上是8s) --主要型別

按鍵或觸控事件在特定時間內無響應

2:broadcasttimeout(10s)

broadcastreceiver在特定時間內無法處理完成

3:servicetimeout(20s) --小概率型別

service在特定的時間內無法處理完成

1.3 如何避免anr

知道了anr產生的原因, 那麼想要避免anr, 也就很簡單了, 就一條規則:不要在主線程(ui執行緒)裡面做繁重的操作

2.anr的分析

將基於mtk平台討論anr的一般解決思路,旨在通過了解本文後能夠對anr問題能夠快速定位,減少排查的時間。

最好使用userdebug版本測試,因為eng版本測試的話本身會加重cpu loading

獲取日誌還有一點需要注意,發生anr後,不要選擇結束程序,因為這樣ams會kill掉該程序,有些資訊會列印不出來,最好是anr發生後等兩三分鐘左右,再將mtklog收集起來(db.xx.anr寫入到aee_exp資料夾下需要時間)。這裡的aee_exp資料夾一般都是需要的, 對db進行dump解析,得到anr發生時場景資訊,比如主線程callstack,cpu,memory等,在分析問題根因時很關鍵。

排序 思路簡析(一)

本篇文章總結一下最近學習的排序演算法,提煉出其思想及不同之處。有歸併排序,快速排序,堆排序以及氣泡排序 採用兩兩分解和歸併的策略簡單易行,這樣的歸併排序稱為2 路歸併排序。歸併排序的實現 public static void sort int arr public static void merge...

ANR日誌分析

一 前言 最近發現好多人不會從日誌中找到anr的解決方法,在此分享乙個小技巧。想必anr 應用程式無響應 大家都遇到過,大概有以下情況會發生 1.dispatchtimeout輸入事件分發超時,一般是主線程在5秒之內沒有響應事件。2.broadcasttimeout廣播超時,一般為廣播在10秒內未能...

Linux 系統故障排查思路簡析

處理linux系統故障的思路 1.重視錯誤提示資訊。2.查閱日誌檔案 message 系統日誌 服務的日誌 error 應用日誌 3.分析,定位問題。4.解決問題。忘記root密碼?重置 centos5或者6 啟動載入grub引導選單時 按esc 找到當前系統引導選項。按方向鍵找到需要的系統引導核心...