我正在调试Android应用程序冻结检测(ANR),当线程之一不响应时,该检测基本上运行逻辑。 (类似于https://github.com/SalomonBrys/ANR-WatchDog)
当开发人员设置断点并且线程被断点停止时,我的逻辑也会执行-从逻辑的角度来看这是准确的。
尽管如此,我还是想检测线程是被调试器还是逻辑错误(即死锁)停止了,并排除了检测到的第一种情况(假阳性)。
可以防止这种情况的非常幼稚的逻辑是用Debug.isDebuggerConnected()
包装我的检测,但是当应用程序连接到调试器时,这基本上禁用了ANR检测。
是否有任何方法可以检测是否由开发人员设置断点来故意停止线程?