2011-05-03 148 views
8

似乎Android 2.3的VM預算比2.1和2.2少得多。令人驚訝的是,較新的操作系統更具限制性,我認爲由於技術的發展,應用程序應該有更大的內存分配(虛擬機預算)。Android 2.3的虛擬機預算比2.1和2.2低嗎?

因此,我無法在內存中保留大的位圖圖像,這對於我現在正在執行的圖形圖像操作應用程序非常重要。但它在2.1和2.2中工作正常。

如果我用inScale縮小圖像以適應2.3,那麼我的輸出質量就會下降。

您有任何建議如何根據您自己的經驗處理2.3和以前版本之間的這種差異?

回答

10

Android 2.3的虛擬機預算實際上更高(32 MB)。區別在於Android 2.3現在默認加載所有32位(ARGB8888)位圖,而不是16位。

有關更多信息,請參見http://www.curious-creature.org/2010/12/04/gingerbread-and-32-bits-windows/http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/

+1

由於作爲答案可能是,在我的應用程序已經設置視圖,所有的位圖加載或argb_8888創建好。它可以在兩個設備上正常工作,但在2.3.3設備上內存不足。首先,我加載了1900x2500位圖,這對兩者都起作用,然後我創建了三個不大於屏幕的較小位圖,但2.3.3在內存大小加載後創建四分之一的屏幕大小位圖時內存不足。我想知道是否有其他可能導致這種情況的東西 - 靜態位圖怎麼樣,2.3是否以不同方式處理它們? – Lumis 2011-05-03 19:52:15