方法:
logcat 看到anr問題 查看reason并定位 看cpu使用率,如果100%就是主線程堵塞,否則可能是GC問題
adb pull /data/anr/traces.txt
定位日志,看主線程,如果dalvik thread 顯示Supoended,內(nèi)存問題
看anr發(fā)生前5slong
如何避免:
合理使用 UI 主線程,耗時操作放入其他線程工作;
合理使用 Handler 來處理其他線程請求;
合理使用并遵循 Android 生命周期, 避免在 onCreate() and onResume() 做過多的事情;
使用一些架構(gòu)形成規(guī)范來避免內(nèi)存等問題,例如:MVP、RxJava;
經(jīng)常使用工具來檢查內(nèi)存問題,例如:MAT、TraceView、AS 自帶等工具;
避免加載大圖片引起內(nèi)存不足導(dǎo)致 ANR;
避免內(nèi)存泄露引起的 ANR