2014-12-22 48 views
-1

在我的應用程序我有一個佈局和我設置爲它的根視圖(相對佈局)內存不足的錯誤在某些設備

android:background="@drawable/paris" 

背景當我在我的移動測試應用程式(xpreia Z),關係5模擬器或平板電腦模擬器一切正常,但在nexus的仿真器nexus,nexus 4仿真器上運行此應用程序,並停止與內存不足的錯誤。 設置爲背景的我的圖像只有1.4米大小。

1 - 如果每個應用程序的堆大小差不多是12m 爲什麼我的應用程序只有一個1.4m大小的圖像並且代碼和庫很少會生成內存不足錯誤?

2 - 我應該怎麼做才能避免這個錯誤,並確保我的應用在所有設備上運行而不會出現內存不足錯誤?

感謝和抱歉我的英語不好。

+0

莫非一些密度的問題?也許該設備正在縮放圖像並達到「oom」? http://developer.android.com/guide/practices/screens_support.html –

回答

1

這主要是由於加載了大圖像文件,這些文件溢出了Android分配的應用程序內存。主要建議將縮小版本加載到內存中,並從緩存中重新使用它。

官方Android網站上有一個非常不錯的article代碼示例。

3

請記住,這裏重要的大小是未壓縮大小,而不是壓縮大小。將圖像縮小到更好的尺寸。

1

如果你的背景是一個24位圖像文件(RGB),例如如果你的圖像是100萬像素,它將佔用24位* 1,000,000的內存,請考慮每像素的位數。

1920 * 1080px圖像=約200萬像素

24位* 2 M = 6MB在存儲器