Xamarin android内存不断增加

时间:2019-05-11 06:51:55

标签: android visual-studio-2017 memory-leaks

我正在学习如何使用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

我的问题是:为什么内存使用率持续增加?我没有创建任何新对象,只是在单个页面中触发了浮动操作按钮的click事件。有什么方法可以防止内存使用率增加?我相信,如果我多次单击,我的应用最终将导致内存不足异常。这是Android内存管理的默认行为,还是Xamarin Android的限制?

0 个答案:

没有答案