"堆"在Android中意味着什么?

Jas*_* PJ 0 android android-emulator

有时我的应用程序在模拟器中崩溃,说堆内存太低.这堆意味着什么?我的应用程序使用本地数据库和ksoap服务.堆问题不是每次都发生.它背后的原因是什么?

Rag*_*ood 5

堆是应用程序在RAM中用于存储数据的Dalvik虚拟机中分配的空间量.

当您尝试加载超出给定的堆空间的东西时,会出现异常.

您可以通过仅加载所需内容来缩小它,并在加载图像时缩小图像尺寸,这样就不会加载比显示所需尺寸更大的图像.


Guf*_*ffa 5

堆是内存管理器用来跟踪内存的内容。它由一个或多个未使用的内存区域以及所有已用内存块组成。

当堆太低时,这意味着没有足够的可用内存,因为应用程序尝试使用的内存超过可用内存。造成这种情况的原因可能有多种,例如:

  • 您的应用程序使用了太多的内存。

  • 其他应用程序正在使用大量内存,而为您的应用程序留下的内存更少。

  • 您的应用程序正在分配较大的内存块,但是可用内存被分成较小的块,因此无法使用。

尝试减少内存使用量,并确保释放了不再使用的正确内存。

  • 请注意,在Android上,您的堆空间通常不会缩小,因为其他应用程序正在使用更多的空间。在大多数情况下,应用程序将按照优先级降低的顺序被杀死,从而使运行中的应用程序具有最小的堆空间量(最少16 MB,通常更多。每个设备不同)。 (2认同)