Xamarin android память продолжает расти - PullRequest
0 голосов
/ 11 мая 2019

Я учусь использовать профилировщик 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();
    }
}

}

Screenshots of my profiler before i start any activity on the app

После того, как я нажму на кнопку с плавающим действием, я замечу, что использование памяти будет увеличиваться без падения Ниже приведен скриншот для использования памяти, записанного после того, как я нажму на плавающую кнопку действия.

Screenshots off my profiler after i click on floating action button

У меня вопрос: почему постоянно увеличивается использование памяти? Я не создал никакого нового объекта, я просто вызвал событие нажатия кнопки плавающего действия на одной странице. Есть ли способ предотвратить рост использования памяти? Я считаю, что если я нажму несколько раз, мои приложения в конечном итоге приведут к исключению нехватки памяти. Это стандартное поведение управления памятью Android или это ограничение Xamarin Android?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...