2017-02-25 36 views
0

我在我的物理设备的测试我的第一个Android应用程序和Android Studio中监视内存的时候,我注意到所分配的内存从16 MB在短时间内提高到25 MB。Android应用和memeory泄漏

内存监视器 enter image description here

这是否意味着我必须在应用程序memroy泄漏?该应用的总内存为70MB左右,而且这个数字随着你打开和关闭应用程序的时间更长。

+0

只是谷歌“java垃圾收集” – lelloman

+0

@lelloman我知道下降意味着它是automati cally垃圾收集。我问是否从16跳到25+是内存泄漏的标志。 – Nicolas

回答

0

从16到25跳是不是内存泄漏的迹象,这是一个标志已经分配了9MB的内存。你可以看到内存下降到17,所以乍一看我会说你没有内存泄漏。
我现在看到你的编辑,70MB并不意味着你有内存泄漏,无论如何,一个事实,即随着时间的推移犯规内存使用量的增加意味着内存泄漏无论是。当应该被垃圾收集的对象被保留在内存中时发生内存泄漏。例如,如果你看到在内存中你有破坏活动的许多情况下,这可能很可能是内存泄漏,但如果你继续分配,因为一个非常大的导航堆栈的活动,很好,你只是使用将意味着大量的内存

有几件事你可以做,但:

- 设置Leak Canary在您的应用程序,它会告诉你,如果你有什么suspicius。

- 在Android Studio中的内存监视器,你应该可以看到一个垃圾车的图标,当你点击它,它会手动触发垃圾收集,它可能是有用的检查多少内存的应用程序实际上是用

- 在内存监视器,你也应该看到其他2个图标到垃圾车的右侧,第一个(带箭头向下)将显示您当前分配的所有对象及其大小,另一个将允许启动跟踪应用程序正在做的所有分配,你可以阅读更多关于它here

0

您可以阅读herehere知道如何避免内存泄漏,这link解释8种方法如何避免内存泄漏