在真正的 Android 设备上调试 Spring RestTemplate 真的很慢

Posted

技术标签:

【中文标题】在真正的 Android 设备上调试 Spring RestTemplate 真的很慢【英文标题】:Debugging Spring RestTemplate on real Android device is really slow 【发布时间】:2014-06-13 00:46:18 【问题描述】:

我在真实设备上调试 android 应用时遇到问题(在 Galaxy mini 和 Galaxy Core Plus 上测试)。应用程序使用 Spring RestTemplate 来使用 REST 服务。通常在没有调试器的应用程序运行期间,对服务器的请求大约需要 5 秒。但是在我尝试调试这个应用程序(即使没有设置断点)之后,应用程序运行速度真的很慢。我发现瓶颈是休息请求,它需要大约 50 秒而不是 5 秒。其他人在他们的项目中使用 RestTemplate 时有类似的问题吗?或者这是我的项目配置中特别的东西。有什么方法可以加快调试过程(我根本不需要调试 RestTemplate 代码,只需要调试我的应用程序类)? 提前感谢

【问题讨论】:

【参考方案1】:

我在我的 Android 设备上调试时遇到了同样的问题。我的团队做了一些事情来减少调试时间。

如果您正在调试与服务器流量无关的东西,那么使用 Log Cat 可以节省您的时间。 Log Cat 和调试器之间的选择很大程度上取决于您尝试调试的内容的性质。 另一件可能有用的事情是通过暂时禁用 REST 模板代码并使用硬编码值进行单元测试。在我的团队中,我们使用 REST 模板加载餐厅的菜单。我们经常会禁用其余模板代码和硬代码菜单值,它们会以它们进入服务器的方式出现。这使我们能够测试内部操作,而无需将 REST 与调试器一起使用的时间成本。一旦我们确信代码按照我们想要的方式运行,我们就会用来自服务器的流量替换我们的硬编码值,并对其进行测试以验证它是否按照我们预期的方式运行。

如果您正在调试服务器流量,您可能会发现难以追踪的错误请求。您可能会花费数小时来调整代码并在调试器上重新运行应用程序以追踪问题。如果每次测试需要将近一分钟,那么时间会很快增加。如果这是您的情况,请考虑使用 fiddler.http://www.telerik.com/download/fiddler。它的工作方式是在程序中输入请求 URL、标头和正文。然后你模拟通话。如果您收到错误的请求,您无需退出应用程序、更改一些代码并重新运行应用程序来测试更改。相反,您可以简单地更改请求中的某些内容并再次运行。原本需要5分钟的事情,5秒就能完成。如果此类信息有帮助,Fiddler 还将允许您查看原始请求和响应。我遇到了一些错误。

调试器速度慢得令人讨厌,尤其是在使用 Spring REST 时。其中一部分是我们为使用调试器付出的代价。我建议使用提琴手调试。希望对您有所帮助。

【讨论】:

以上是关于在真正的 Android 设备上调试 Spring RestTemplate 真的很慢的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - Google 地图在真正的 Android 设备上发布 apk 时仍为空白

Android Studio - 真正的 Android 设备上的 Google 地图在发布 apk 时仍为空白

android模拟器是不是足以进行调试?

无法在 android 设备上调试应用程序 - Android Studio 2.0

React-native 应用程序在真正的 android 设备上崩溃

有啥方法可以在 Android 设备上调试 javascript?