android anr定位分析,Android ANR产生的原因以及其定位分析

前言

ANR是Android中一个独有的概念,它的全称是Application Not Responding(应用程序无响应)。

相信从事Android开发的同学,或多或少都遇到过,对于高质量的代码,ANR在开发者自测过程中可能不会经常遇到,但一旦测试人员进行Monkey测试,ANR出现的概率就比较高了,如何快速分析定位并解决,是开发者的必修课。

ANR的直观体验是用户在操作APP的过程中,感觉界面卡顿,比如按下某个按钮,打开某个页面等,当卡顿超过一定时间(一般是5秒)时就会出现ANR对话框,如下图所示:

f3bb73a634941d740afe96442b14232d.png

这时查看Logcat,一般可以发现ANR以及traces.txt等字样。可以发现,出现ANR主要是因为我们在主线程中做了耗时操作。这时你可以选择“等待”按钮,等待应用程序结束主线程耗时操作,或者选择“确定”按钮,结束这个应用程序。

1、ANR产生的原因

只有当应用程序的UI线程响应超时才会引起ANR,超时产生原因一般有两种:

· 当前的事件没有机会得到处理,列如UI线程正在响应另外一个事件,当前事件由于某种原因被阻塞了。

· 当前的事件正在处理,但是由于耗时太长没能及时完成。

根据ANR产生的原因不同,超时时间也不尽相同,从本质上讲,产生ANR的原因有三种

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值