【问题标题】:OutOfMemoryException far from memory limitOutOfMemoryException 远离内存限制
【发布时间】:2013-09-27 10:56:11
【问题描述】:

在我的应用程序中,我使用了很多资源进行渲染。这导致我的应用程序崩溃,并出现异常,表明没有剩余内存(分配字节数组时)。使用 meminfo 我发现我的进程使用了​​大约 40mb 的内存,根据我的计算这是正确的(因此我的代码中没有隐藏过多的内存分配)。

我系统上的总内存使用量为 300mb。然而,我的平板电脑支持 1gb 内存,我想知道为什么它在使用 300mb 时会抛出异常。我需要更改每个进程的限制吗?或者我还有什么关于 androids 内存管理的遗漏吗?

【问题讨论】:

  • 无需代码如何帮助您。人不是上帝,伙计
  • 尝试在清单文件中添加 largeheap = true
  • @Biraj Zalavadia:这个问题与代码无关,而是与内存分配的一般概念有关,因此我认为获取信息不需要神力。
  • @DjHacktorReborn 如果堆很大,则 gc 会更频繁,暂停时间会更多youtube.com/watch?v=_CruQY55HOk。视频中的那个人给出了一个很大的警告。所以你应该小心使用大堆

标签: android memory opengl-es


【解决方案1】:

将此添加到应用程序标签中的androidManifest

android:largeHeap="true"

让事情正常运行,但这会消耗更多的内存,因此会产生更多的 gc 调用

【讨论】:

  • 通过将此标签添加到您的 manifest.xml,请确保您的构建目标必须是 Android 3.0 (API 11) 或更高版本。否则,将无法正常工作!
猜你喜欢
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 2011-06-08
  • 2010-12-24
  • 2010-09-26
  • 2012-06-04
  • 2014-07-16
  • 2011-02-25
相关资源
最近更新 更多