2010-11-18 208 views
3

我們有一個Android應用程序在Android 1.6上拋出內存不足錯誤。它在2.0以上工作正常。我們正試圖在這一點上減少運行時內存使用量。Android應用程序 - 我們可以在運行時重新使用圖像嗎?

我們正在考慮重新使用圖像 - 例如每個屏幕的背景圖像。是否可以在應用程序啓動時在內存中加載一次背景圖像,並在每個屏幕中重新使用此緩存副本,而不是每個屏幕都加載相同的背景圖像,從而增加RAM中的總體佔用空間?

我們知道圍繞運行時內存使用有很多其他方式和最佳實踐。但在這一點上,我們只是想知道這種「圖像重用」方法是否真的可行?

如果是,我們該怎麼做?完全可以節省任何內存,否則Android操作系統仍然會爲每個屏幕創建同一資產的多個副本,而不會從內存角度給予任何好處?

非常感謝您花時間閱讀我的文章。

回答

0

是的,你可以重複使用圖像。

它通常爲ListViews完成,其中每行包含相同的圖像。

在這種情況下,您可以在適配器的構造函數中獲取一次Bitmap,然後在getView()方法中重用它,因此您無需爲每行加載它。這個技巧是提供的here

在你的情況下,你可以加載你的背景位圖在主要活動的onCreate()方法中,將其保存爲公共靜態屬性,然後在所有活動中重新使用它。

但我認爲這不會造成太大的區別,並且無需付費。

當您正在調整您的用戶界面時,我建議您觀看2009 Google I/O Presentation by Romain Guy,如果您還沒有看到它。它顯示了很多提高UI性能的有用技巧,特別是當涉及到位圖操作時。

2

如果該背景圖像作爲資源中的可繪製對象加載,則其位圖數據已在所有以此方式創建的可繪製對象之間共享。所以不,在你的特殊情況下它可能不會使你受益。

相關問題