当前位置 : 主页 > 手机开发 > android >

如何避免Android应用程序的图形内存不足?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我一直在使用 Eclipse中的 Android应用程序,到目前为止,我的程序并没有真正增长到小尺寸.但是我已经遇到内存不足错误的问题.你看,我在这个程序中一直使用仅由位图和PNG组成的图形,最近
我一直在使用 Eclipse中的 Android应用程序,到目前为止,我的程序并没有真正增长到小尺寸.但是我已经遇到内存不足错误的问题.你看,我在这个程序中一直使用仅由位图和PNG组成的图形,最近,当我尝试为程序添加更多功能时(主要包括更多的位图并导致创建额外的精灵) ),它开始在图形线程的构造函数中崩溃 – >精灵的构造函数.当我跟踪问题时,结果是内存不足错误,这似乎是由于向程序添加了太多图片文件并从中创建了Drawables.

这将是一个问题,因为我真的没有那么多的图片资源进入该程序…可能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.>尝试确保图形仅使用一次.拥有一个处理这个问题的资源处理类非常有用(至少如果你正在做游戏).

网友评论