Я учусь использовать профилировщик 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();
}
}
}
После того, как я нажму на кнопку с плавающим действием, я замечу, что использование памяти будет увеличиваться без падения Ниже приведен скриншот для использования памяти, записанного после того, как я нажму на плавающую кнопку действия.
У меня вопрос: почему постоянно увеличивается использование памяти? Я не создал никакого нового объекта, я просто вызвал событие нажатия кнопки плавающего действия на одной странице. Есть ли способ предотвратить рост использования памяти? Я считаю, что если я нажму несколько раз, мои приложения в конечном итоге приведут к исключению нехватки памяти. Это стандартное поведение управления памятью Android или это ограничение Xamarin Android?