1

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

4

2 回答 2

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 通道。

于 2012-07-09T18:22:30.893 回答
3

设备上的 5MB 包含大量压缩数据。当您的应用程序运行时,压缩为 JPG 或 PNG 的图像之类的东西会被解码为相当大的位图。

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

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

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

于 2012-07-09T18:12:03.007 回答