zoukankan      html  css  js  c++  java
  • ANR日志分析

     

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/z_Xiaozuo/article/details/80829316

    一:前言

        最近发现好多人不会从日志中找到ANR的解决方法, 在此分享一个小技巧。    

        想必ANR(应用程序无响应)大家都遇到过,大概有以下情况会发生:  

                  1. dispatchTimeout输入事件分发超时,一般是主线程在5秒之内没有响应事件。

                2. BroadcastTimeout广播超时,一般为广播在10秒内未能执行完毕。

                3. ServiceTimeout服务超时,一般为服务在20秒内未能执行完毕。

        其实无非就是不要在主线程中做耗时操作,比如:网络请求,数据库操作什么的,写代码的时候注意一下就可以大大的避免ANR发生。

    二:输出日志

        如果在发生ANR时手机没有连接着AS的话, 可以用这种办法取到ANR日志,技巧如下:

            1. 打开CMD小黑框,进入到Android SDK 目录下的platform-tools文件夹下面直接输出 : adb logcat (不会进的自行百度) 复制粘贴到一个txt文本下,方便稍后查看。

            2. 执行adb pull /data/anr/traces.txt  D: races.txt 输出traces日志。

    三:分析日志

            1. 先看logcat输出的日志

    查看未果,不要浪费时间, 我们接着看trace 日志, 看看能不能找到答案。

    四:总结

        其实anr并不难解决,通过分析日志基本就可以找到答案,如果你也遇到了anr那么尝试用这种办法解决试试, 看看能不能解决你的问题, 最主要的还是在写代码的时候多加注意,主线程只做刷新Ui的操作, 把一切耗时的操作都放在子线程里去完成,尽量从根源上避免ANR发生, 最后在这祝大家: 事业顺利,上线无BUG!

  • 相关阅读:
    Nginx日志管理
    Nginx负载均衡
    Nginx 缓存
    Nginx代理服务器
    Nginx搭建 Web服务
    Nginx HTTP模块
    洛谷P1012拼数
    洛谷 P1876 开灯
    洛谷P2084 进制转化
    关于typedef的用法
  • 原文地址:https://www.cnblogs.com/xgjblog/p/11464776.html
Copyright © 2011-2022 走看看