内存不足错误。 android

Out of memory error. android

我想多了解一点 out of memory。我知道它主要导致位图和试图操纵的大对象。无论如何,在某种情况下我会收到此错误,尽管我在那里没有图像或其他任何东西,只有简单的 textViews 和 phone ram 大约有 12% 可用。所以我知道我的应用程序使用少量 kb-s 作为内存来分配,但我想知道该内存是否也对 ram 有任何作用? android 中是否也会因为 RAM 内存不足而出现内存不足错误?

网络资源海量,只Google。一个好的开始点是 http://developer.android.com/training/articles/memory.html

设备的 RAM 不会直接 影响您的应用程序的内存,真正的问题是所谓的 heap。将它想象成允许您的应用程序使用的 RAM 的一小部分(还有更多,但现在应该足够了)。 所有 java 对象都分配,即保存在堆上。如果您正在创建一个新对象,堆将始终尝试摆脱未使用的东西,但如果它不能(因为您仍在使用所有对象),它将尝试增长。如果堆无法进一步增长,则会发生 OutOfMemoryError

你看,不仅位图加起来会消耗你的内存,基本上任何东西。特别大的 StringBuffers 也可能是个问题。

但是,位图通常是原因。如果您正在使用例如ImageView 或仅设置视图的背景图像,它将在内部使用位图。

如果您确实没有在您的应用程序中使用任何大文件或位图,那么您遇到 内存泄漏 的可能性很高。要了解有关这些(以及如何发现它们)的更多信息,请查看 https://corner.squareup.com/2015/05/leak-canary.html