我正在测试我的 android 应用程序的 onsave/onrestore 方法。
为此,我给我的设备打电话,看到它终止了进程,然后我挂断了电话。:) 我看到它重新启动了应用程序。
问题是:如何让它在调试模式下重新启动,以便我可以逐步完成恢复过程?有没有办法让它在启动时自动附加到调试器?
我正在测试我的 android 应用程序的 onsave/onrestore 方法。
为此,我给我的设备打电话,看到它终止了进程,然后我挂断了电话。:) 我看到它重新启动了应用程序。
问题是:如何让它在调试模式下重新启动,以便我可以逐步完成恢复过程?有没有办法让它在启动时自动附加到调试器?
采用android.os.Debug.waitForDebugger();
基本上,从调试开始。退出您的应用程序。设置一些断点。回到你的应用程序(确保这条线被点击,所以把它放在你的 onCreate 或其他地方),它会重新连接到正在运行的调试器。
我认为没有办法确保应用程序在调试模式下重新启动。但是,如果您正在调试自己的应用程序并且不介意添加调试代码进行测试,您可能需要在启动方法的适当位置添加 Thread.sleep(5000) 或类似的东西。这应该让您有足够的时间通过 DDMS 重新连接调试器。当然,完成后删除;)
在 Android 设置 > 开发者选项 > 调试 > 选择要调试的应用中有一个配置选项。它的作用是每次打开某个应用程序时调用 eclipse 调试器,如果它连接到 adb 并且应用程序的项目已打开。
以编程方式:使用waitForDebugger()
. 文档在这里。
请注意,该方法会在调试器附加后立即返回,因此最佳做法是在该调用之后立即放置断点。此外,您可以使用isDebuggerConnected()
.
在 Eclipse 中:打开 Eclipse 的 DDMS 透视图,在您的设备上选择刚刚重新启动的应用程序,然后选择调试选项。这会将调试器附加到重新启动的实例。
在设备上:在某些*手机下有一个配置选项,允许您在配置 USB 调试时选择要调试的应用程序。它位于设备设置中的开发人员选项下。这将自动附加调试器。
*例如,我的 Galaxy S4 有它,我的 HTC Rezound 没有。我相信这可能是果冻豆特定的选择。