2012-07-09 57 views
1

我的Android應用程序大小隻有5MB,但是當我運行應用程序時,它使用了大量RAM(如12-18 MB左右)以及更多的ics設備。我試圖找到一個解釋,爲什麼我的應用程序使用大量的RAM,我也使用瞭解析推送服務。我的應用程序是圖像密集型,可能是一個可能的原因。我如何減少我的應用程序的RAM消耗。使用大量內存的Android應用程序

回答

5

原因很可能是您的應用程序是圖像密集型的。總的來說,圖像在RAM中佔用的內存要多於在磁盤上的內存。要查看圖像將使用多少內存,請使用以下公式:

For ARGB images: memory(in bytes) = width * height * 4 

這是因爲ARGB圖像每像素有4個通道。

For RGB images: memory(in bytes) = width * height * 3 

這是因爲RGB圖像每像素有3個通道。

所以要使用更少的內存,請嘗試縮小圖像尺寸,或者從不需要它的圖像中刪除Alpha通道。

3

設備上的5MB包含大量的壓縮數據。像您的圖像這些壓縮爲JPG或PNG格式的圖像在您的應用運行時會被解碼爲相當大的位圖。

作爲一個例子,一個300kB的PNG有時可以在內存中變成一個6MB的位圖。

在ICS上,使用了更多的內存,因爲圖像被複制用於硬件加速。

爲了減少RAM消耗,請使用較小的圖像(如較小的尺寸,而不是更多的壓縮),減少您使用的視圖數量,並確保您沒有泄漏任何內存。

相關問題