2014-04-15 53 views
1

我使用NuGet的'Hot Tuna Starter Pack'創建了一個包含MvvmCross的Android應用程序。 ,做一些改動:簡單的應用程序內存使用情況

在生成的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分配的堆開始,在點擊了DDMS中的'原因GC'後,在幾次導航之後分配的堆是32MB。

我花了更多時間在設備上的應用程序之間切換或保持設備閒置,但分配的堆沒有減少。

我本來希望分配的內存被釋放。 我猜它最終得到?

回答

1

我會先看看一般的Android內存管理實踐。請記住,這將被編譯爲Android應用程序的本地字節,因此您應該可以使用this來調試任何內存問題。

+0

是的,我知道這個理論。我無法理解發生了什麼事。我正在測試一個真實的設備 –

相關問題