我正在学习如何使用Xamarin分析器分析Xamarin Android应用程序的内存使用情况。我创建了一个简单的Xamarin Android项目,以在Xamarin分析器上进行测试。我注意到的是应用程序的内存将不断增加而不会下降。这是Android应用程序的默认行为吗?请参阅以下源代码,了解我的简单应用。请注意,这是从Visual Studio 2017
创建的单视图应用程序 protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
fab.Click += FabOnClick;
}
public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.menu_main, menu);
return true;
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
int id = item.ItemId;
if (id == Resource.Id.action_settings)
{
return true;
}
return base.OnOptionsItemSelected(item);
}
private void FabOnClick(object sender, EventArgs eventArgs)
{
View view = (View) sender;
Snackbar.Make(view, "Replace with your own action", Snackbar.LengthLong)
.SetAction("Action", (Android.Views.View.IOnClickListener)null).Show();
}
}
}
单击浮动操作按钮后,我注意到内存使用量将持续增加而不会下降。请单击下面的屏幕截图,了解我单击浮动操作按钮后记录的内存使用情况。
我的问题是:为什么内存使用率持续增加?我没有创建任何新对象,只是在单个页面中触发了浮动操作按钮的click事件。有什么方法可以防止内存使用率增加?我相信,如果我多次单击,我的应用最终将导致内存不足异常。这是Android内存管理的默认行为,还是Xamarin Android的限制?