我在我的@drawable目錄中的許多照片,它們通過背景屬性連接到XML佈局:Android的內存消耗
即 <ImageButton android:background="@drawable/background1" ... />
我有很多的活動,所以,當活動被銷燬(BACK是按下),堆沒有被釋放。所以,問題是:
Android是否加載內存中的所有內容一次,並使堆只在應用程序被銷燬時釋放?在這種情況下如何防止內存消耗?只有通過圖像壓縮或動態加載背景和圖像?
我在我的@drawable目錄中的許多照片,它們通過背景屬性連接到XML佈局:Android的內存消耗
即 <ImageButton android:background="@drawable/background1" ... />
我有很多的活動,所以,當活動被銷燬(BACK是按下),堆沒有被釋放。所以,問題是:
Android是否加載內存中的所有內容一次,並使堆只在應用程序被銷燬時釋放?在這種情況下如何防止內存消耗?只有通過圖像壓縮或動態加載背景和圖像?
我認爲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提到它。
如果我錯了,請讓我知道。請分享一些關於此的更多信息。
謝謝。
我敢打賭,如果你不使用資源,它永遠不會被加載到內存中...... – Goz
我知道這一點。但是當它被使用和加載時,當活動被破壞時,內存不會被釋放。 – Adil
看看我編輯的答案。 – user370305