简单的应用内存使用

时间:2014-04-15 13:29:28

标签: xamarin.android mvvmcross

我创建了一个使用MvvmCross的Android应用程序,使用' Hot Tuna Starter Pack'来自NuGet。 并做了一些改变:

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

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    local:MvxBind="Click ShowNextScreenCommand"
    android:textSize="40dp" />

在FirstViewModel中我添加了一个命令

 public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.ShowViewModel<SecondViewModel>()); } }

然后我创建了第二个活动SecondView,为此我只是复制粘贴了FirstView.axml,FirstView.cs和FirstViewModel并重命名。 唯一的变化是命令导航回来:

public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.Close(this)); } }

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

应用程序以15MB的分配堆开始,经过几次导航后,我点击了“原因GC”后分配的堆是32MB。在DDMS。

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

我原本期望分配的内存被释放。 我猜它最终会成功吗?

1 个答案:

答案 0 :(得分:1)

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