2011-10-22 181 views
0

我在我的@drawable目錄中的許多照片,它們通過背景屬性連接到XML佈局:Android的內存消耗

<ImageButton android:background="@drawable/background1" ... />

我有很多的活動,所以,當活動被銷燬(BACK是按下),堆沒有被釋放。所以,問題是:

Android是否加載內存中的所有內容一次,並使堆只在應用程序被銷燬時釋放?在這種情況下如何防止內存消耗?只有通過圖像壓縮或動態加載背景和圖像?

+0

我敢打賭,如果你不使用資源,它永遠不會被加載到內存中...... – Goz

+0

我知道這一點。但是當它被使用和加載時,當活動被破壞時,內存不會被釋放。 – Adil

+0

看看我編輯的答案。 – user370305

回答

1

我認爲Android有一個own garbage collector,但proceed it its take sometimes而不是相關的momory作爲對象未被使用。而且,當垃圾回收器需要拉屎時,需要使用bitmap is created its memory occupied in native heap

所以如果可能的話use dynamic Image loading,而不是靜態的,並嘗試使用自己的回收或釋放您的位圖的記憶。

編輯:

的GC()不處理所謂短暫的對象儘可能快 想。

保持視圖對象的數量在一個穩定的級別*,並回收它們而不是銷燬和創建新的。

羅馬人的一個不錯的帖子Avoiding memory leaks提到它。

如果我錯了,請讓我知道。請分享一些關於此的更多信息。

謝謝。