当前位置: 首页 > news >正文

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:\traces.txt 输出traces日志。

三:分析日志

        1. 先看logcat输出的日志

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

四:总结

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

转载于:https://www.cnblogs.com/xgjblog/p/11464776.html

相关文章:

  • 使用trace文件分析ANR
  • javacv获取视频第一帧
  • Android ANR log trace日志文件分析
  • ffmpeg开发文档
  • js 特殊字符替换成换行
  • xampp for mac配置局域网访问
  • Xray写POC插件
  • db timedb / ClickHouse
  • Redis 学习笔记(篇十):Sentinel
  • OS + Centos7.6 / Windows 10 shuangxitong
  • C#中字符串转换为计算公式
  • SSM框架-SpringMVC
  • SSM框架-mybatis
  • 微软3389远程漏洞CVE-2019-0708批量检测工具
  • 浅谈 赛马问题
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • __proto__ 和 prototype的关系
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CEF与代理
  • eclipse的离线汉化
  • HashMap剖析之内部结构
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript服务器推送技术之 WebSocket
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • log4j2输出到kafka
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • react 代码优化(一) ——事件处理
  • Redash本地开发环境搭建
  • spring学习第二天
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • V4L2视频输入框架概述
  • Wamp集成环境 添加PHP的新版本
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 后端_MYSQL
  • 基于 Babel 的 npm 包最小化设置
  • 利用jquery编写加法运算验证码
  • 前端js -- this指向总结。
  • 实现菜单下拉伸展折叠效果demo
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • UI设计初学者应该如何入门?
  • 回归生活:清理微信公众号
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # 数据结构
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (3)(3.5) 遥测无线电区域条例
  • (C++20) consteval立即函数
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (js)循环条件满足时终止循环
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)计算机毕业设计SSM保险客户管理系统