日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ANR 定位和修正

發布時間:2024/10/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ANR 定位和修正 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以通過查看/data/anr/traces.txt查看ANR信息。

根本原因是:主線程被卡了,導致應用在5秒時間未響應用戶的輸入事件。

很多種ANR錯誤出現的場景:

1) 主線程當中執行IO/網絡操作,容易阻塞。

2) 主線程當中執行了耗時的計算。----自定義控件的時候onDraw方法里面經常這么做。

(同時聊一聊自定義控件的性能優化:在onDraw里面創建對象容易導致內存抖動---繪制動作會大量不斷調用,產生大量垃圾對象導致GC很頻繁就造成了內存抖動。)內存抖動就容易造成UI出現掉幀卡頓的問題

3) BroadCastReceiver沒有在10秒內完成處理。

4) BroadCastReceiver的onReceived代碼中也要盡量減少耗時的操作,建議使用IntentService處理。

5) Service執行了耗時的操作,因為service也是在主線程當中執行的,所以耗時操作應該在service里面開啟子線程來做。

6) 使用AsyncTask處理耗時的IO等操作。

7) 使用Thread或者HandlerThread時,使用Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)或者java.lang.Thread.setPriorityint priority設置優先級為后臺優先級,這樣可以讓其他的多線程并發消耗CPU的時間會減少,有利于主線程的處理。

8) Activity的onCreate和onResume回調中盡量耗時的操作。

總結

以上是生活随笔為你收集整理的ANR 定位和修正的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。