安卓,通过DDMS跟踪内存,“获取分配”不起作用。

21

正如问题标题所说,我所做的步骤是:

  1. 点击“更新堆”
  2. 在“Allocation Tracker(分配跟踪器)”选项卡上,点击“开始跟踪”
  3. 点击“获取分配”

在控制台中,我看到了红色提示信息:

[2013-12-29 13:56:40 - ddm-heap] *** Received REAL`

发生了什么?我有没有漏掉什么?

谢谢


你成功获取了“分配”吗?尽管DDMS看到了手机和应用程序/线程等内容,但我在Debian测试中检索不到通过USB连接的设备。 - RichieHH
2个回答

5
需要在Android Studio中完成。(感谢此错误报告中的项目成员说的话: https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&groupby=&sort=&id=74059)
您可以看到,这些图标甚至与DDMS中的图标名称相同(这很令人困惑)! 但是DDMS中的Allocation Tracker不起作用,而Android Studio中的"Android Monitor"可以。
附注: 在截图中,我使用的是Android Studio 2.3和Android Device Monitor版本25.2.2。 错误的(不起作用):

DDMS Monitor (does not work)

正确(有效):

Android Monitor in Android Studio

结果会在您的源代码旁边的窗口中显示,就像这样:

enter image description here

更多信息请参考:

https://developer.android.com/studio/profile/am-memory.html https://developer.android.com/studio/profile/am-allocation.html


4

嗯,REAL是最近的分配(REcent ALlocation)。

根据源代码,记录错误是handleREAL()的第一行。只是一个假设 - 这应该是Log.d()而不是Log.e(),但我不能确定。

是的,“获取分配”对我来说并不总是有效。生成的日志无法导出,并且在设备上的应用程序完成后立即消失。遗憾的是,这不是一个非常方便的跟踪工具...


这个工具在正常工作时也会打印这个错误信息吗?还是只有在出现问题时才会打印? - nmr
如果我的源代码假设是正确的 - 那么这个日志消息并不表示错误(应该是调试级别的消息)。 - Over17
4
好的。对于我自己的回复:即使这个工具有效,它确实会输出错误信息。嗯,Google还有改进的空间。 - nmr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接