ANR案例分析222

4.1ANR等待锁
下面我们举个例子
在这里插入图片描述
从标灰地方可以看出当前在执行DeviceManager被锁,在这种情况下有两种办法查看该问题
1>根据如上堆栈梳理流程查问题(相关模块责任人应该比较了解,门外汉不管用)
2>直接查看被锁对象在做什么(如果没有就看流程吧)
搜索DeviceManager
在这里插入图片描述
搜索完毕后发现DeviceManager在handleMessage执行后又被SetParameterRequest locked了,而SetParameterRequest执行execute后卡在native_getParameters继续查看上面堆栈
在这里插入图片描述
如上可以看到阻塞在binder通信过程中,而native_getParameters根据堆栈看到他调用的是libcamera_client.so
搜索libcamera_client
在这里插入图片描述
到了这里是不是很清晰了,类和方法名都打出来了(红色标注),直接查看,再不清楚直接反编译定位行数

APR就目前而言出现最多就两类
1>ANR: ANR问题的分析思路,主要是看ANR主线程被什么线程阻塞了。

发布了133 篇原创文章 · 获赞 2 · 访问量 3389

猜你喜欢

转载自blog.csdn.net/qq_42894864/article/details/104719564