将Eclipse调试器附加到重新启动的应用程序

时间:2012-10-24 15:10:42

标签: android adt ddms eclipse-adt

我正在测试我的android应用程序的onsave / onrestore方法。

要做到这一点,我打电话给我的设备,看到它杀了这个过程,然后我挂了电话。 :) 我看到它重新启动了应用程序。

问题是:如何让它在调试模式下重启,以便我可以逐步完成恢复过程? 有没有办法告诉它在启动时自动连接到调试器?

4 个答案:

答案 0 :(得分:9)

使用android.os.Debug.waitForDebugger();

基本上,通过调试开始。退出您的应用。设置一些断点。回到您的应用程序(确保该行被命中,因此将其放入onCreate或其他地方),它将重新连接到正在运行的调试器。

答案 1 :(得分:1)

我认为没有办法确保应用程序在调试模式下重新启动。但是,如果您正在调试自己的应用程序并且不介意添加用于测试的调试代码,则可能需要在启动方法中的适当位置添加Thread.sleep(5000)或类似的东西。这应该给你足够的时间通过DDMS重新连接调试器。当然,当你完成后删除;)

答案 2 :(得分:1)

Android设置中有一个配置选项>开发人员选项>调试>选择要调试的应用程序。它的作用是每次打开某个应用程序时调用eclipse调试器,如果它连接到adb并且应用程序的项目是打开的。

答案 3 :(得分:0)

以编程方式:使用waitForDebugger()Documentation here.

请注意,只要调试器附加,该方法就会返回,因此最好在该调用之后立即放置断点。此外,您可以使用isDebuggerConnected()测试调试器附件状态。

在Eclipse中:打开eclipse的DDMS透视图,在设备上选择刚重新启动的应用程序,然后选择调试选项。这会将调试器附加到重新启动的实例。

在设备上: 某些 *手机下有一个配置选项,允许您在配置USB调试时选择要调试的应用。它位于设备设置中的“开发者选项”下。这将自动附加调试器。

*例如,我的Galaxy S4有它,我的HTC Rezound没有。我相信它可能是Jelly Bean的特定选项。