Android MAT:由java.lang.ref.FinalizerReference

时间:2016-02-05 17:50:10

标签: android memory memory-leaks

我试图追踪一些意想不到的高内存使用率。 我已经降低了我的应用程序的复杂性,因为目前我有一个带按钮的主要活动。按此按钮可启动播放视频的videoView的新活动。当视频播放完毕或被关闭按钮解除时,活动将停止,用户将返回主活动。

现在的陌生感(对我来说很奇怪)。当应用程序首次启动时,它的内存使用量约为20mb。每次视频活动开始,关闭并返回时,内存使用量增加约6mb。但这不是泄漏,因为它会继续增加到大约50mb左右,然后下降到~30mb。然后它会在50mb到30mb之间增长和下降。

我使用MAT进行了转储,并且在直方图视图中看到当我期待没有或者更糟糕的时候,仍有多个视频活动。在后续转储中,它看起来像实例数在1-5之间反弹(对应于低和高mem值)。

我不确定下一步该做什么!我是MAT的新手,并且不知道如何使用它来追踪发生的事情。当我执行不包含弱引用的merge_shortest_path时,它指向类java.lang.ref.FinalizerReference作为持有所有内存的类。我用Google搜索并检查我的代码都没有覆盖任何finalize方法。

这是正常现象,还是有人知道为什么我的视频活动在他们完成后不会立即被清除。

任何指针都非常感激。

KK

0 个答案:

没有答案