Android通过trace日志文件分析定位ANR问题

什么是ANR,造成ANR的原因有哪些?网上很多,这里我就不介绍了。

下面我就以一个实战例子直奔主题:

一:首先当我们手机里运行的某个APP发生了ANR,系统会将当前APP的运行日志写入到sd卡的 data/anr 目录中。

比如我在点击事件中执行以下代码:

1

运行后多点几次该控件,等个几秒钟就会出现ANR的对话框,这个时候相关日志就会被写入到 data/anr 目录中。

二:这个时候我打开cmd面板,输入adb shell连接上我们的手机,然后输入 ls data/anr 查看anr目录下的生成的trace文件,这里可能会有很多个包名+日期命名的trace文件,因为日期会显示乱码,所以我们需要把anr目录下所有的trace文件都导出来,然后找到你出现ANR的APP的包名开头+日期的trace文件打开。

1,ls data/anr 命令查看trace文件列表

2

2,exit 退出shell命令模式,然后 adb pull data/anr 导出trace文件列表到电脑硬盘

5

3,导出文件列表到电脑硬盘(默认位置是如下图去找):

3

三:把红框里的文件打开,搜索dilvik,定位到如下图红框圈起来的地方,对应图一中MainActivity中第26行死循环的那段代码。

4

最后根据提示去代码中分析代码逻辑,解决问题吧。

Good Luck!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值