0

我的应用程序出现 OOM 错误 (OutOfMemory) 问题。这似乎是由于一个对象在内存中占用越来越多的空间,但我无法找到哪个。

我想使用 Android Profiler 来查找问题。但是我有一个使用大量设备处理器和内存的实时应用程序,当我使用 Profiler 时,应用程序变得非常慢并且几乎无法使用(我需要以正常速度使用该应用程序至少 3 分钟才能看到内存逐渐增长)。

我的问题是:

  • 有没有办法在没有这个减速问题的情况下使用 Profiler?
  • 如果没有,是否有任何其他工具或方法可以帮助我找到内存中增长的对象?

谢谢 !

4

2 回答 2

0

您可以使用收集应用程序的堆转储adb shell

adb shell am dumpheap <PID> <TARGET_FILE>

并使用android studio profiler查看导出的文件

或者,如果您知道 OOM 发生在您的应用程序中的确切时间,您可以使用此方法收集堆转储 Debug.dumpHprofData(String)

于 2021-01-12T13:23:37.813 回答
0

您可以采取以下措施来缓解分析器对应用程序的减速:

  1. 更改Allocation TrackingNone(工具栏上的下拉框)

  2. 直到稍后才附加分析器。只是Run应用程序,然后当它接近您要分析的点时,打开Profiler选项卡并按下左侧面板上的+按钮,然后选择正确的设备并进行分析。SESSIONS

于 2021-01-14T00:03:18.860 回答