2014-01-15 31 views
0

我的歉意,这可能是一个愚蠢的问题。我在android上出现了内存不足错误,所以我看了几个小时的关于DDMS的教程。我对它仍然很陌生,但这种行为很奇怪。Android DDMS高初始保留堆

我在我的浅堆堆30mb左右。所以,我开始检查所有的对象,没有看起来太怀疑(只是一些大的位图等),但是,有一些非常巨大的对象似乎不属于我的应用程序。所以,我在一个空应用程序上测试了ddms。当我在一个基本上空的应用程序上创建转储时,它仍然说有12 MB的东西。在所有的教程中,没有人有类似的东西。我假设,因为我们必须点击应用程序进行转储,它正在收集特定于应用程序的对象。这个假设是错误的吗?有什么方法可以解决它?它是否正在拾取与我的应用程序无关的其他对象?

正如我所说的这个应用程序本质上是尽可能裸露,没有图像资源,什么都没有。我刚刚制作了一个android应用程序并解雇了它。

这里的直方图 enter image description here

回答

1

如果你的设备是上述ICS(Android 4.0版本),额外的内存分配用于硬件加速,以提高图形性能。
在android 3.x中,可以通过在AndroidManifest.xml中设置一个标志来关闭硬件加速。但是在android 4.x中,如果您的设备支持它,则不会有这样的标志,并且硬件加速始终是true

这里是源代码。
https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s