我一直在使用 Eclipse中的 Android应用程序,到目前为止,我的程序并没有真正增长到小尺寸.但是我已经遇到内存不足错误的问题.你看,我在这个程序中一直使用仅由位图和PNG组成的图形,最近
这将是一个问题,因为我真的没有那么多的图片资源进入该程序…可能20左右.我还没有开始包括声音.这些图像并不那么花哨.我的问题是:
1)Android手机的程序是否真的限制了它们可以使用多少内存,或者它是否可能是导致该错误的20-30个资源图片之外的东西?
2)如果Android应用程序的内存非常糟糕,它甚至无法处理20-30个图片资源被加载到同时存在的Drawables中,那么你应该如何为这个东西制作体面的图形和声音?
谢谢.
正如史蒂夫和保罗已经提到的,关键因素是你的图像有多大.标准手机上的Android应用程序限制为16Mb,而hidef手机上限制为24Mb.这是一个硬性限制.这严重限制了您拥有的图形数量.计算图形大小很容易:宽x高x像素大小(16或32位).
一些技巧:
>您需要仔细检查代码是否存在内存泄漏.在Android中泄漏内存非常容易,如果几次泄漏几个位图,就会快速耗尽内存. This article may help.>如果可能的话,始终使用ARGB_4444(16位)加载图形.仅此一项,可以将图形的内存消耗减少2倍.>如果可以,请始终为null并回收资源,以协助gc.>尝试确保图形仅使用一次.拥有一个处理这个问题的资源处理类非常有用(至少如果你正在做游戏).