Xamarin.android 简单的应用程序内存使用

Xamarin.android 简单的应用程序内存使用,xamarin.android,mvvmcross,Xamarin.android,Mvvmcross,我用NuGet的“热金枪鱼入门包”创建了一个带有MvvmCross的Android应用程序。 并做了一些改变: 在生成的FirstView布局中,我添加了一个按钮 我在设备上运行应用程序,通过单击按钮在活动之间来回导航,并使用DDMS观察堆 该应用程序以15MB的分配堆开始,经过几次导航,在我单击DDMS中的“原因GC”后,分配的堆为32MB 我花了更多的时间在设备上的应用程序之间切换或保持设备空闲,但分配的堆并没有减少 我本以为分配的内存会被释放。 我想它最终会变好的 首先,我将介绍一般的An

我用NuGet的“热金枪鱼入门包”创建了一个带有MvvmCross的Android应用程序。 并做了一些改变:

在生成的FirstView布局中,我添加了一个按钮

我在设备上运行应用程序,通过单击按钮在活动之间来回导航,并使用DDMS观察堆

该应用程序以15MB的分配堆开始,经过几次导航,在我单击DDMS中的“原因GC”后,分配的堆为32MB

我花了更多的时间在设备上的应用程序之间切换或保持设备空闲,但分配的堆并没有减少

我本以为分配的内存会被释放。
我想它最终会变好的

首先,我将介绍一般的Android内存管理实践。请记住,对于Android应用程序,这将被编译为本机字节,因此您应该能够使用它来调试任何内存问题。

是的,我知道这个理论。我无法理解发生了什么。我正在一台真正的设备上测试
<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    local:MvxBind="Click ShowNextScreenCommand"
    android:textSize="40dp" />
 public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.ShowViewModel<SecondViewModel>()); } }
public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.Close(this)); } }