2011-04-02 50 views
0

Android中RGB_565位圖佔用多少內存?我猜每個像素2個字節,但是:Android中的RGB_565位圖 - 它需要多少內存?

  1. 我有256x256的位圖,所以會改變成256 * 256 * 2 = 131,072字節
  2. 我的應用程序(離線瓷磚地圖)拋出的OutOfMemoryError上N1(2.3)時,內存中有143個位圖。 143位圖是18MB。我手機上的最大堆大小爲32 MB。
  3. 這意味着我的應用程序的其餘部分是32 - 18 = 14 MB。但是我在DDMS>堆中看到的只有7 MB以上。另外,我在16 MB堆大小的設備上只有2 MB的位圖。

回答

0

在Android < 3.0中,位圖不佔用Dalvik堆中的空間,而是它們存儲在本機堆中。您無法看到位圖在DDMS堆中佔用了多少內存(順便說一下,您可以在ddms配置文件中加入「native = true」之類的內容)。

在3.0+中,位圖數據存儲在Dalvik堆中。

如果您有其他圖像(也是xml文件中的背景,xml中的圖像),他們佔用了其他空間。我有很多OutOfMemoryIssues,因爲我用太大的圖像作爲背景。

0

在nexus上,每個android應用程序被限制爲24MB的內存,這包括您分配的任何位圖。

它也加起來 - 沒有位圖的應用程序需要大約7MB,當你分配143位圖時,我認爲你違反了24MB的限制,從而導致異常。

在此文章中進行了更詳細的討論here