ANR日志分析
一:前言
最近发现好多人不会从日志中找到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!
ANR日志分析的更多相关文章
- 干货:ANR日志分析全面解析
一.概述 解决ANR一直是Android 开发者需要掌握的重要技巧,一般从三个方面着手. 开发阶段:通过工具检查各个方法的耗时,卡顿情况,发现一处修改一处. 线上阶段:这个阶段主要依靠监控工具发现AN ...
- Android ANR从原理到日志分析,记下来就够了
站在巨人的肩膀上可以看的更远 做一个优秀的搬运工 Android 彻底理解安卓应用无响应机制 Android ANR日志分析全面解析 优秀的文章不可独享,要扩散,要做好笔记,哈 <沁园春长沙&g ...
- [转]ANR问题分析指南
引言 每天收到无数的兄弟团队的同事向系统转ANR JIRA,有些一旦遇到App ANR就直接转到系统组,有些简单看一下就转到系统组帮忙看一下.如此浩瀚的JIRA,我们什么事不做也处理不过来,请每个Ap ...
- ANR问题分析实例
ANR监测机制包含三种: Service ANR,前台进程中Service生命周期不能超过20秒,后台进程中Service的生命周期不能超过200秒. 在启动Service时,抛出定时消息SERVIC ...
- Monkey框架(测试方法篇) - monkey日志分析
Monkey日志分析是Monkey测试中非常重要的一个环节,通过日志分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息,帮助开发定位和解决问题.介绍日志 ...
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- 海量日志分析方案--logstash+kibnana+kafka
下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...
随机推荐
- C# 7可以在.NET Framework 4上运行吗?
https://stackoverflow.com/questions/42482520/does-c-sharp-7-0-work-for-net-4-5 To sum up: All of C# ...
- 字典排序MD5生成代码
/* * Project: payment.framework * * File Created at 2017年12月23日 * * Copyright 2016 CMCC Corporation ...
- error C4996: 'AVStream::codec': was declared deprecated
关闭VS的SDL检查 工程 属性=>C/C++ =>General=> SDL checks 改为 No(/sdl).
- docker中使用阿里云的apt源安装各种实用工具
今天想在docker中安装vim工具,还有其他的软件等等,如果你直接执行apt-get install vim是没有用的,会显示: root@7d43d83fd3a8:/etc/nginx# apt- ...
- 看TED演讲——Why you will fail to have a great career
讲者的名字叫Larry Smith,看起来很严肃很认真,有点黑色幽默的意思,演讲风格是非常让人喜欢的. 拿来howie老师的说法,拉老师给的你为什么没有一个great career的原因: 1. 知道 ...
- The 2016 ACM-ICPC Asia China-Final D. Ice Cream Tower 二分 + 贪心
题目大意: 对于给出的n个冰激凌球的大小,满足下面的球的大小是上一个的至少2倍,对于给出的k(由k的冰激凌球才能算作一个冰激凌塔),问n个冰激凌球可以最多堆出多少个高度为k的冰激凌塔 题目分析: 对于 ...
- 关于MySql的坑
今天弄hibernate的时候数据库死活连不上 估计mybatis也够呛 搞了好几个小时也不行,最后问题是mysql驱动版本过低,需要换高一些版本的驱动 另一个就是一个ssl方面的错误 连接的时候要把 ...
- Flutter 数据存储之 shared_preferences
资源名称 网址 github https://github.com/flutter/plugins/tree/master/packages/shared_preferences Flutter 数据 ...
- IDEA 注释模板
类.接口.等文件注释: /** * @Description: * @author: tangsw * @date: ${DATE} ${TIME} * */ 方法上注释: /** * @Descri ...
- 利用Java反射机制优化简单工厂设计模式
之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信.发送邮件.当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发.就是一个程序员和 ...