了解 Android 垃圾回收
Understanding Android garbage collection
我在 Android 中找不到有关垃圾回收的有用信息。
当你出现内存异常时,我真的不明白
这里有一个问题:
当我 运行 我的应用程序并使用 Android 设备监视器对其进行监视时
我看到应用程序刚启动时分配的内存是8 MB。
有一个按钮,每次按下都会创建一个对象。
所以当我不断按下按钮时,分配的内存会增长直到
它达到堆大小。当达到堆大小时,分配的
内存回到 8 MB,但堆增长了一点点。在那之后,
整个事情再次发生并且堆不断增长
在这种情况下我有内存异常吗?或者这是否正常
堆大小不断增长?
堆大小是您可以使用的保留内存。分配的内存是实际使用的内存。
当分配的内存接近堆大小时,并且您看到分配的内存下降,对象正在被垃圾回收。堆大小会增加一点,因为您可能需要比当前保留更多的内存。
最后,如果您一直分配内存而不释放它,堆大小和分配的内存将会增长,直到系统内存耗尽(对于您的应用程序)。届时,将抛出 OutOfMemoryException
, 并且您的应用程序将崩溃 。
阅读 Managing Your App's Memory | Android Developers 以获得更深入的见解。
我在 Android 中找不到有关垃圾回收的有用信息。
当你出现内存异常时,我真的不明白
这里有一个问题:
当我 运行 我的应用程序并使用 Android 设备监视器对其进行监视时 我看到应用程序刚启动时分配的内存是8 MB。
有一个按钮,每次按下都会创建一个对象。
所以当我不断按下按钮时,分配的内存会增长直到 它达到堆大小。当达到堆大小时,分配的 内存回到 8 MB,但堆增长了一点点。在那之后, 整个事情再次发生并且堆不断增长
在这种情况下我有内存异常吗?或者这是否正常 堆大小不断增长?
堆大小是您可以使用的保留内存。分配的内存是实际使用的内存。
当分配的内存接近堆大小时,并且您看到分配的内存下降,对象正在被垃圾回收。堆大小会增加一点,因为您可能需要比当前保留更多的内存。
最后,如果您一直分配内存而不释放它,堆大小和分配的内存将会增长,直到系统内存耗尽(对于您的应用程序)。届时,将抛出 OutOfMemoryException
, 并且您的应用程序将崩溃 。
阅读 Managing Your App's Memory | Android Developers 以获得更深入的见解。