在android上优化堆大小

时间:2012-04-16 12:09:38

标签: java android android-intent

我遇到了运行到outOfMemory的Android APP的麻烦问题。

在挖掘并搜索内存泄漏后,我发现 - 我认为 - 问题在于:

  • 我的初始堆大小为11 MB(使用率为98%)。
  • 调用CAMERA intent后,堆大小增加到34 MB,使用率达到99.5%(很少崩溃导致outOfMemory)。
  • 在旋转屏幕或拍摄另一张照片之后,我的应用程序就开始了 - 有时候堆大小为52 MB(使用70%)并且经常会因OutOfMemory而崩溃。

我读了很多线程,有人想增加初始堆大小,但我也读到了应该很快就弃用了,这不是一个好主意,因为即使你不需要它也会增加内存使用量。 此外,我怎么知道我的应用程序需要多少堆内存?我仍然应该监控工作情况,并在最短的时间内增加时间。步骤

我的问题是:处理堆大小的最佳方法是什么,并避免出现这种outOfMemory异常?

我尝试了许多版本的代码,并且只使用相机拍摄照片的样本,它始终是相同的。仅供参考,这是已发布的代码

Take picture with android camera (intent) out of memory error

1 个答案:

答案 0 :(得分:3)

您只需要查看官方Android开发者网站上发布的新文章Displaying Bitmaps。他们几天前刚刚发布了这篇文章。

那篇文章肯定会帮助你解决问题。