某些设备上的内存不足错误

时间:2014-12-22 07:51:45

标签: android android-layout android-studio out-of-memory

在我的应用程序中我有一个布局,我为它的根视图设置了背景(相对布局)

    android:background="@drawable/paris"

当我在我的手机(xpreia z),nexus 5模拟器或平板电脑模拟器上测试应用程序时一切正常,但在nexus的模拟器nexus,nexus 4模拟器上运行此应用程序并且...已停止内存错误。 我设置为背景的图像只有1.4米大小。

1 - 如果每个应用程序的堆大小几乎是12米 为什么我的应用程序只有一个1.4米大小的图像和少量代码和库会产生内存不足错误?

2 - 我应该怎么做才能避免此错误,并确保我的应用程序在所有设备上运行而没有内存不足错误?

感谢并抱歉我的英语不好。

3 个答案:

答案 0 :(得分:3)

请记住,此处重要的大小是未压缩的大小,而不是压缩大小。缩小图像尺寸。

答案 1 :(得分:1)

这主要是由于加载大型图像文件而导致Android溢出指定的应用程序内存。主要建议将缩小版本加载到内存中并从缓存中重用它。

官方Android网站上有一个非常好的article代码示例。

答案 2 :(得分:1)

考虑每像素位数,如果您的背景是24位图像文件(RGB),例如,如果您的图像是100万像素,则内存中需要24位* 1,000,000。

1920 * 1080px image =约200万像素

24bits * 2M = 6MB内存