Android中ANR的监测与定位

本文介绍了Android应用程序中ANR(Application Not Responding)的监测原理。通过在子线程向主线程发送消息并设定超时时间,当超过设定时间未处理消息即视为发生ANR。当ANR发生时,通过主线程的调用栈可以定位到问题源头。文章还提供了一个简单的监测线程实现,并展示了如何在发生ANR时获取调用栈信息,帮助开发者快速定位卡顿原因。
摘要由CSDN通过智能技术生成

一、原理

1. ANR监测原理

判断ANR的方法其实很简单,我们在子线程里向主线程发消息,如果过了固定时间后,消息仍未处理,则说明已发生ANR了。

看懂了直接看2,没看懂继续看。

Android应用程序的所有交互操作和响应,都是通过主线程的消息机制来进行的。例如当用户点击了某个Button,系统会向主线程发送消息,主线程的Looper从主线程消息队列中取出消息并处理,处理完当前消息,主线程Looper再去取出下一个消息。当主线程做了耗时的任务,主线程的Looper就无法从消息队列中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值