Android性能优化(四) 响应速度优化和ANR日志分析

响应速度优化的核心思想是避免在主线程中做耗时操作,但是有时候的确有很多耗时操作,怎么办呢?可以将这些耗时操作放在线程中去执行,即采用异步的方式执行耗时操作,响应速度过慢更多地体现在Activity的启动速度上,如果在主线程中做太多事情,会导致Activity启动时出现黑屏现象,甚至出现ANR,,Android规定,Activity如果5秒钟之内无法响应屏幕触摸时间或者键盘输入时间就会出现ANR,而BroadcasrReceiver如果10秒中之内还未执行完操作也会出现ANR,在实际开发中,ANR是很难在代码上发现的,如果在开发中遇到ANR,那么怎么定位问题呢,其实当一个进程发生ANR后,系统会在data/anr 目录下创建一个文件traces.txt,通过分析这个文件就能定位出ANR的原因,下面的代码是在Activity的onCreate中休眠30s,程序运行后持续点击屏幕,应用一定会出现ANR.

8656692-9b18d1d0b8a8af40.png

导出traces文件

8656692-055ca5d0f6848de4.png

trace文件一般是非常长的

8656692-9dfc5e36f8b386e5.png
8656692-5ce78253e396be66.png

猜你喜欢

转载自blog.csdn.net/weixin_33675507/article/details/87218677