卡顿

作者: 挖打发 | 来源:发表于2021-06-15 15:05 被阅读0次

    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

    相关文章

      网友评论

          本文标题:卡顿

          本文链接:https://www.haomeiwen.com/subject/viazsltx.html