为什么要等待调试器,然后将调试器附加到进程?

问题描述 投票:0回答:1

的意义是什么

android.os.Debug.waitForDebugger();

我知道我们[有时]需要这样做才能调试Service,但我的问题是:

  • WHY我们必须这样做吗?
  • 为什么存在这种方法?它还有什么其他用途?
  • Service意味着什么,为什么我们必须这样做?为什么必须以这种方式调试attach a debugger to a process,而不是ServiceActivity?]

人们会认为调试项目中的任何类型的代码都非常简单。除非不是。反正不是BroadcastReceiver

存在此特殊程序的原因是什么?还有什么用?

参考

1Service

2Debugging a service

3A proper way to Debug a Service in Android Studio?

4Breakpoint in service not working

5How to debug an Android Background Service?

可能相关

1How to debug a Service?

2Accessibility service disabled upon each debug run

3When using the Java debugger in Intellij what does “Drop Frame” mean?

4Configure on-device developer options

android android-service android-testing android-debug android-developer-api
1个回答
1
投票

我不确定我的答案是正确的,因为您可能期望内部有复杂的见解。实际上,有一个非常简单的过程来连接和拦截过程响应。

Test your service

  • 为什么存在此方法?它还有其他用途吗?

如您所见,回答这个问题非常简单。由于进程拦截期间的竞争状况,您将无法在您的早期断点处停止,因此应致电enter image description here。在最常见的地方,例如waitForDebugger()调试和Service

  • 将调试器附加到进程是什么意思,为什么我们必须这样做?为什么必须以这种方式调试服务,而不是Activity或BroadcastReceiver?]

这是另一个问题,但是我不确定这里的上下文。我们需要调用该方法,并在情况下手动附加到流程,在这种情况下,Application使用清单中的另一个process。显然,调试桥将在应用程序的当前活动进程上设置,但是由于我们可以从另一个进程运行Service,因此我们需要将其手动添加到调试桥并等待调试连接。

© www.soinside.com 2019 - 2024. All rights reserved.