这可能是一个愚蠢的问题,但我似乎无法在互联网上找到很多具体信息。
假设我有 2 个 Activity :MainActivity 和 Secondactivity。 主 Activity 有一个按钮可以转到第二个 Activity 。 第二个 Activity 有一个返回到 主要 Activity (下面的代码非常简单)。
我想了解 android 内存管理,这就是我进行此测试的原因。
我的问题:
当我不断地在 Activity 之间来回切换时,在 Android Studio 中查看内存图时,我可以看到一个蓝色的图,它永远不会回到它在应用程序启动时分配的内存。 我有内存泄漏吗? (可能不是因为这是基本代码)。但是为什么它永远不会回到一开始就分配给它的原始内存呢?
mainactivity只有这个方法:
@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));
}
});
}
虽然 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));
}
});
}
最佳答案
我认为问题在于使用 genymotion 作为模拟器。 您应该使用真实的设备进行内存分析,而且较旧的内存监视器更精确。
关于安卓内存测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34983311/