Android应用和记忆泄漏

时间:2017-02-25 08:09:01

标签: java android memory-leaks

我在我的物理设备中测试了我的第一个Android应用程序,当在Android Studio中监视内存时,我发现在短时间内分配的内存从16 MB增加到25 MB。

内存监视器 enter image description here

这是否意味着我在app中有memroy泄漏?该应用程序的总内存使用量约为70MB,当您打开和关闭应用程序更长时间时,此数字会增加。

1 个答案:

答案 0 :(得分:0)

从16跳到25并不是内存泄漏的迹象,这表明已经分配了9mb的内存。你可以看到内存回落到17,所以乍一看我会说你没有内存泄漏。我现在看到你的编辑,70mb并不意味着你有内存泄漏,内存使用量随时间增加的事实并不意味着内存泄漏。当应该被垃圾收集的对象保留在内存中时发生内存泄漏。例如,如果你在内存中看到你有很多被破坏活动的实例,那很可能是内存泄漏,但是如果你因为一个非常大的导航堆栈而继续分配活动,这就意味着你只是在使用一个记忆很多

你可以做几件事:

- 在您的应用中设置Leak Canary,它会告诉您是否有某些怀疑。

- 在android studio的内存监视器中你应该看到一个带有垃圾车的图标,当你点击它时会手动触发垃圾收集,检查应用实际使用的内存量可能很有用

- 在内存监视器中,您还应该看到垃圾车右侧的其他2个图标,第一个(向下箭头)将显示当前分配的所有对象及其大小,另一个将允许开始跟踪所有应用分配的分配,您可以阅读更多相关信息here