我刚开始使用Eclipse 内存分析器来尝试解决扩展 MapActivity 的活动中的内存泄漏,但我不确定我是否正确理解了它的输出。为了分析泄漏,我启动了活动并旋转了几次屏幕,然后我进行了堆转储并打开了它。我做的第一件事是打开直方图视图 并查找我的活动(称为 ChangeLocationActivity)。这看起来确实像内存泄漏,因为同一个 Activity 存在三个实例。所以我得到了带有传入引用的对象列表,然后得到了“GC Roots 的路径”,不包括所有三个实例的弱引用。这是第一个实例的路径,这个对于第二个实例(自定义 MyLocationOverlay 是一个非常简单的类,它是为了绕过某些摩托罗拉设备上的错误而创建的,除了在 drawMyLocation() 中捕获异常之外没有什么特别的),最后这是第三个实例,看起来像当前显示的那个。
正如我之前所说,我不确定我是否正确理解了这些结果(Eclipse 内存分析器非常强大但非常复杂),但据我所知,导致内存泄漏的原因似乎与 Google 地图库有关。谁能告诉我我是对的还是我只是不理解这些结果?