Android内存测试

Den*_*sVA 5 memory heap stack android

这可能是一个愚蠢的问题,但我似乎无法在互联网上找到很多具体的信息.

假设我有2个活动:MainActivity和Secondactivity.mainactivity有一个按钮可以进入第二个活动.第二个活动有一个返回主活动的按钮(下面非常简单的代码).

我试图了解android内存管理,这就是为什么我正在做这个测试.

我的问题:

当我经常在活动之间来回走动时,在查看Android工作室中的内存图时,我可以看到一个蓝色图表,它永远不会回到它在应用程序启动时分配的内存.我有内存泄漏吗?(可能不是因为这是基本代码).但是为什么它一开始就不会回到它原来分配的内存?

主要活动只有这种方法:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button btnTest = (Button) findViewById(R.id.btnTest);
    btnTest.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Log.i(null, "test");
            finish();
            startActivity(new Intent(MainActivity.this, SecondActivity.class));
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

虽然SecondAcitivity只是回到第一个并创建了一些按钮

public class SecondActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Button btnTest = (Button) findViewById(R.id.btnTest);
    btnTest.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            Log.i(null, "test");
            finish();
            startActivity(new Intent(SecondActivity.this, MainActivity.class));
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

}

在此输入图像描述

Den*_*sVA 1

我认为问题在于使用 genymotion 作为模拟器。您应该使用真实的设备进行内存分析,而且较旧的内存监视器更精确。