如何在Android中调试两个进程?

如何在Android中调试两个进程?,android,android-service,Android,Android Service,在我的应用程序中,一个活动启动一个作为单独进程运行的服务,我想调试该活动和该服务,但调试器不会在服务中的断点处停止 感谢您的帮助。暂时不要将其作为单独的过程 @Commonware您需要在单独的进程上启用调试 打开DDMS透视图(用于调试或Java)。在DDMS->Devices中,选择服务的进程,然后单击debug按钮(绿色的小错误按钮)。调试图标将出现在进程附近,然后您应该能够在服务中使用断点 请注意,在启用调试之前,需要等待远程进程启动。因此,您可能希望确保独立进程在引导时启动,或者在启动

在我的应用程序中,一个活动启动一个作为单独进程运行的服务,我想调试该活动和该服务,但调试器不会在服务中的断点处停止


感谢您的帮助。

暂时不要将其作为单独的过程


@Commonware

您需要在单独的进程上启用调试

打开DDMS透视图(用于调试或Java)。在DDMS->Devices中,选择服务的进程,然后单击debug按钮(绿色的小错误按钮)。调试图标将出现在进程附近,然后您应该能够在服务中使用断点

请注意,在启用调试之前,需要等待远程进程启动。因此,您可能希望确保独立进程在引导时启动,或者在启动远程服务的行之后立即在主进程中设置断点

启用调试之前:

启用调试后:


(当然,暂时将服务设为非远程也可以,但我遇到过一个不实用的实例)

为了详细说明这里的其他答案,您可以暂时放置
android.os.Debug.waitForDebugger(),以简化此操作


然后,只需通过DDMS或IntelliJ(或您正在使用的任何工具)将调试器连接到进程即可。

它应该:-)。没有理由不命中服务断点。您是否能够在用于启动服务的活动中的断点处成功停止?@tomtheguvnor在活动中,是的。暂时使其不是一个单独的进程。更好的是,永久性地使它不是一个单独的进程,因为这通常是不必要的,并且是对RAM和CPU的浪费。@commonware我将重新考虑我的设计。除了“暂时让它不再是一个单独的过程”之外,没有别的办法了吗?+1,感谢你的回答。我不再使用两个过程,因此在我接受答案之前,我会让社区对答案进行审查。谷歌员工给出的官方建议: