公司:#滴滴 #美團
崗位:#軟件測試工程師
關鍵字:#adb #Android #移動端app #Appium #java
1.主線程執行了耗時操作,比如數據庫操作或網絡編程
2.其他進程(就是其他程序)占用CPU導致本進程得不到CPU時間片,比如其他進程的頻繁讀寫操作可能會導致這個問題。
細分的話,導致ANR的原因有如下幾點:
1.耗時的網絡訪問
2.大量的數據讀寫
3.數據庫操作
4.硬件操作(比如camera)
5.調用thread的join()方法、sleep()方法、wait()方法或者等待線程鎖的時候
6.service binder的數量達到上限
7.system server中發生WatchDog ANR
8.service忙導致超時無響應
9.其他線程持有鎖,導致主線程等待超時
10.其它線程終止或崩潰導致主線程一直等待。