【问题标题】:After how much memory consumption Android throws OutOfMemoryException多少内存消耗后Android抛出OutOfMemoryException
【发布时间】:2018-02-28 11:30:26
【问题描述】:

它是一个old post,但我仍然在大多数地方发现了一个 android 应用程序在 16-32 MB 内存附近运行

但是当我检查android Profiler 时,它说我的应用程序当前在Samsung Galaxy S7 上使用了大约350 MB 内存。

我在我的应用程序上收到了几次OutOfMemoryException,我很好奇为什么会这样。当我深入挖掘时,我发现了 16-32 MB 限制,但实际上我的应用程序正在使用 350 MB

我想知道一个普通的android手机给每个app分配了多少内存,或者是一个可变数字,如果没有app在运行android不会给outOfMemoryException,如果有这么多app在stack里面是OutOfMemoryException的机会更高

但同样会有一些限制。

【问题讨论】:

标签: android performance android-layout out-of-memory


【解决方案1】:

随着操作系统的老化,Android 设备差异很大。如果您希望您的应用在低端设备上运行是安全的,那么您绝对应该以低于 32mb 的限制为目标。除非您正在加载一些非常大的图像,否则听起来您的代码正在泄漏内存。

首先从您的应用中移除所有加载的图像(或其他资产),看看您是否仍有问题。 如果你这样做了,请查看LeakCanary,当你发现泄漏时,了解它们以及它们发生的原因,因为它将极大地帮助你成为一个更好的 Android 程序员。应用程序泄漏内存的主要方式之一是将 Activity 上下文传递给长时间运行的任务:)

【讨论】:

  • 非常感谢@Daniel :)
猜你喜欢
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多