Java 解释eclipse的输出';s存储器分析器

Java 解释eclipse的输出';s存储器分析器,java,android,eclipse,Java,Android,Eclipse,我正在尝试跟踪我的游戏应用程序中的内存泄漏。程序只运行一次就可以正常运行,但如果反复运行并关闭,最终会遇到某种内存不足的错误。在尝试安装和理解eclipse的内存分析器的过程中,我费了很大的劲,终于产生了下面截图中显示的数据 我的应用程序基于一个名为SD_globals的应用程序,如下所示: public class SD_Globals extends Application { int example_global_data = 99; // stuff } 以及五个独立的

我正在尝试跟踪我的游戏应用程序中的内存泄漏。程序只运行一次就可以正常运行,但如果反复运行并关闭,最终会遇到某种内存不足的错误。在尝试安装和理解eclipse的内存分析器的过程中,我费了很大的劲,终于产生了下面截图中显示的数据

我的应用程序基于一个名为SD_globals的应用程序,如下所示:

public class SD_Globals extends Application
{
    int example_global_data = 99;
    // stuff
}
以及五个独立的活动,每个活动都可以访问SD_Globals中声明的各种全球数据。例如,其中一项活动是SD_游戏,如下所示:

public class SD_GamePlay extends Activity implements View.OnClickListener
{
    SD_Globals gs; // gs stands for global state

    gs = ((SD_Globals)getApplicationContext());

    // now I can access global variable using code like this:
    int x = gs.example_global_data;
}
看看截图中的数据,重复的游戏实例看起来很奇怪。我的猜测是,也许每次执行活动时都会重新创建新的活动,而不会进行垃圾收集(对吗?)。。。如果是这样的话,是什么原因造成的呢

编辑:如果我的解释完全偏离了轨道,那么图像中是否还有其他可疑的内容


SD\u GamePlay$1
SD\u GamePlay$2
等都不是
SD\u GamePlay
类的实例。它只是
SD\u GamePlay
类中的匿名内部类
SD_GamePlay$MicksPanelThing
SD_GamePlay$MicksThreadThing
SD_GamePlay
类中的非匿名内部类


$in name的解释:

您以前看过这段Google IO视频吗?我相信它详细解释了如何使用内存分析器工具。我不记得确切的单击位置,但我相信每个对象都有一种方法可以看到哪个对象持有对它的引用,因此不会让它被收集。应该在视频中详细描述。