当出现内存不足错误时,在Android集成测试期间进行堆转储

当出现内存不足错误时,在Android集成测试期间进行堆转储,android,integration-testing,heap-dump,Android,Integration Testing,Heap Dump,我们工作中的测试人员无法通过手动测试使我们的应用程序出现OOM错误,但当我们运行集成测试时,大约50次测试后,我们会出现OOM错误,而其余的测试不会完成 我希望在集成测试期间得到OOM时转储堆。我正在使用Maven和Spoon启动集成测试。我真的很想看看堆,看看是什么在消耗内存。在测试运行期间,我尝试连接监视器,但ddms尝试连接的端口被占用。测试基础结构可能已连接到ddms端口 实际上,您可以通过调用android.os.Debug.dumpHprofData()从测试中转储堆。测试应在与应用

我们工作中的测试人员无法通过手动测试使我们的应用程序出现OOM错误,但当我们运行集成测试时,大约50次测试后,我们会出现OOM错误,而其余的测试不会完成


我希望在集成测试期间得到OOM时转储堆。我正在使用Maven和Spoon启动集成测试。我真的很想看看堆,看看是什么在消耗内存。在测试运行期间,我尝试连接监视器,但ddms尝试连接的端口被占用。

测试基础结构可能已连接到ddms端口


实际上,您可以通过调用android.os.Debug.dumpHprofData()从测试中转储堆。测试应在与应用程序相同的进程空间中运行。因此,它应该工作得很好。在第45次测试之后,开始在每个测试中进行堆转储,您可能会得到需要分析的堆转储。

好吧,有时候会更早发生。这是非常随机的。我真的很想在OOM发生时这样做。也许你可以尝试通过安装一个UncaughtExceptionHandler来捕获OOM。请看()中的示例代码,这是一个很好的示例。你刚刚教了我一些新东西。谢谢