对于我测试过的几个应用程序,似乎即使在应用程序的,堆内存使用率也非常高。例如,我有一个应用程序,它应该显示ImageView上的资源图像。但是,即使在加载图像之前,使用Heap也是大约95%。当我加载并显示图像时,它仍然很好,它将使用的内存增加到大约98%。但是,如果我创建了位图的副本,那么应用程序会因内存不足而崩溃。
同样,我的主要问题是为什么在任何处理完成之前,应用程序启动时可用内存量是如此之低。
答案 0 :(得分:0)
您看到如此大量的内存使用百分比的原因是因为堆没有增长到其最大大小。这意味着,即使您看到98%的使用率涉及您当前的堆大小而不是您可以使用的总量。
在运行时,堆会动态增长,因为Dalvik VM需要更多内存。通常,您从一个相对较小的堆开始,如果需要每个GC,Dalvik将请求更多内存。
现在对于你的OutOfMemoryError
来说,这可能是很多事情。我建议使用BitmapFactory
类inSampleSize