Android应用程序使用了大量的RAM

时间:2012-07-09 18:05:27

标签: android android-memory

我的Android应用程序大小在设备上只有5MB,但是当我运行应用程序时,它使用了大量的内存,大约12-18 MB(以及更多的ics设备)。我试图找到一个解释,为什么我的应用程序使用大量的RAM,我也使用解析推送服务。我的应用程序是图像密集型,可能是一个可能的原因。如何减少应用程序的RAM消耗。

2 个答案:

答案 0 :(得分: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通道。

答案 1 :(得分:3)

设备上的5MB包含大量压缩数据。像您的图像一样,压缩为JPG或PNG,在您的应用运行时会被解码为相当大的位图。

例如,300kB的PNG有时会在内存中变成6MB的位图。

在ICS上,使用的内存更多,因为复制图像以用于硬件加速。

要减少RAM消耗,请使用较小的图像(如较小的尺寸,而不是更多的压缩),减少您正在使用的视图数量,并确保不泄漏任何内存。