经过多少内存消耗Android抛出OutOfMemoryException

时间:2018-02-28 11:30:26

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

它是一个old post,但仍然在大多数地方我发现一个Android应用程序绕过16-32 MB内存

但是当我检查android Profiler时,它表示我的应用目前正在使用350 MB内的Samsung Galaxy S7内存。

我在我的应用上得到OutOfMemoryException几次,我很好奇为什么会发生这种情况。当我向下挖掘一点时,我发现了16-32 MB限制,但实际上我的应用程序正在使用350 MB

我想知道普通安卓手机为每个应用程序提供了多少内存,或者它是一个可变数字,如果没有应用程序运行,android将不会给outOfMemoryException,如果有这么多应用程序在堆栈中然后OutOfMemoryException

的概率更高

但同样会有一些限制。

enter image description here

1 个答案:

答案 0 :(得分:1)

由于操作系统越来越老,And​​roid设备差别很大。如果您希望您的应用程序在低端设备上工作以确保安全,那么您绝对应该瞄准低于32mb的限制。除非您正在加载一些非常大的图像,否则听起来您的代码正在泄漏内存。

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