在Android应用程序中找出哪个对象正在消耗内存
在我编写的Android应用程序中,内存使用率似乎很高。你持续使用的时间越长,应用程序的速度就越慢。因此,我试图通过在Eclipse中使用DDMS来找出原因。这是我在DDMS中单击“原因GC”时在“堆”选项卡中看到的内容: 对不起,我是新来的;我承认。不能从中得到任何东西。一个对象“1字节数组”使用的空间超过6MB(!!)。如何获取其堆栈跟踪?如何找到创建此对象的位置在Android应用程序中找出哪个对象正在消耗内存,android,Android,在我编写的Android应用程序中,内存使用率似乎很高。你持续使用的时间越长,应用程序的速度就越慢。因此,我试图通过在Eclipse中使用DDMS来找出原因。这是我在DDMS中单击“原因GC”时在“堆”选项卡中看到的内容: 对不起,我是新来的;我承认。不能从中得到任何东西。一个对象“1字节数组”使用的空间超过6MB(!!)。如何获取其堆栈跟踪?如何找到创建此对象的位置 简要说明何时完成此GC(我在DDMS中单击了“原因GC”按钮):该应用程序有一个后台线程,每隔几秒钟与远程服务器联系一次。这个
简要说明何时完成此GC(我在DDMS中单击了“原因GC”按钮):该应用程序有一个后台线程,每隔几秒钟与远程服务器联系一次。这个堆是在应用程序启动后(用户还没有交互)的一段时间内完成的
有人能帮忙吗?这不是编程问题,而是工程问题 您应该能够看到活动中的内存使用情况。这意味着您知道哪个活动消耗内存
在该活动中,尝试注释掉可疑代码,并查看差异。很可能是图像或视频消耗了内存。所以我建议您注意解码位图或将视频URL设置为VideoView。它可能是位图。你为什么这么担心?@Blackbelt,你怎么说这是位图?你怎么“跟踪”内存使用情况?我怎么说这个6MB的对象(我在截图中看到)是在哪里创建的?内存消耗是什么时候发生的?比如说,一旦某项活动产生了?或者在onClick之后?该应用程序有一个后台线程,每隔几秒钟与远程服务器联系一次。此堆是在应用程序启动后(用户尚未进行交互)的一段时间内获取的。要确认该线程中出现的问题,请尝试在应用程序启动时不运行该堆,并查看内存是否仍在消耗。如果是这样,问题就出在这个线程上