卡顿

1 ANR:

1定位:

    a.查看Logcat,会告诉我们ANR产生的原因以及所在的类

    b.通过bug_report命令导出日志文件,在FS/data/anr目录下会生成anr日志文件,我们查看最新的日志文件,会看到产生anr的具体所在方法以及行数

    c.主线程占用时间过长:通过profiler选项卡,可以看到cpu视图,点击record按钮可以记录线程信息,停止记录后,可以看到主线程中每个方法的占用时长,找到占用时长最长的方法去优化

    d.死锁导致:主线程等待另一个线程释放锁,时间长了就会ANR,这时我们可以在日志中搜索blocked可以找到死锁的原因,以及没有释放锁的子线程

    e.IO导致:一般是文件操作引起,在日志中搜索ANR in关键字,找到ANR发生的时间然后往前看几秒,如果有耗时文件操作,对其采用异步操作

    f.内存泄漏:查看anr日志前后是否有OOM异常,内存泄漏导致内存占用一直在增长最后OOM了,进而产生ANR

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容