在我的应用程序中我有一个布局,我为它的根视图设置了背景(相对布局)
android:background="@drawable/paris"
当我在我的手机(xpreia z),nexus 5模拟器或平板电脑模拟器上测试应用程序时一切正常,但在nexus的模拟器nexus,nexus 4模拟器上运行此应用程序并且...已停止内存错误。 我设置为背景的图像只有1.4米大小。
1 - 如果每个应用程序的堆大小几乎是12米 为什么我的应用程序只有一个1.4米大小的图像和少量代码和库会产生内存不足错误?
2 - 我应该怎么做才能避免此错误,并确保我的应用程序在所有设备上运行而没有内存不足错误?
感谢并抱歉我的英语不好。
答案 0 :(得分:3)
请记住,此处重要的大小是未压缩的大小,而不是压缩大小。缩小图像尺寸。
答案 1 :(得分:1)
这主要是由于加载大型图像文件而导致Android溢出指定的应用程序内存。主要建议将缩小版本加载到内存中并从缓存中重用它。
官方Android网站上有一个非常好的article代码示例。
答案 2 :(得分:1)
考虑每像素位数,如果您的背景是24位图像文件(RGB),例如,如果您的图像是100万像素,则内存中需要24位* 1,000,000。
1920 * 1080px image =约200万像素
24bits * 2M = 6MB内存