Android 安卓游戏内存米高梅&x27;T
我在安卓2.2上的游戏内存管理方面有一个问题。 我可以列举几种可能的理论来解释这一点:Android 安卓游戏内存米高梅&x27;T,android,oop,Android,Oop,我在安卓2.2上的游戏内存管理方面有一个问题。 我可以列举几种可能的理论来解释这一点: 在非缓存idea上加载位图(我使用项目的位图对象加载) 我没有使用位图。回收() 因为我使用的是OOP设计,所以我只使用Iterator.remove()而不是将其置零 位图实际大小达到300KB[延迟的主要原因] MediaPlayer对象用于播放音频动画 游戏前内存开销过大[所有内容都已加载] 虽然列举上述项目可以通过调整我的一些编码风格来完成,但我主要关心的是如何在安卓2.2上正确地编码游戏,而不会造成
-
我应该考虑什么类比?<李>
- 我应该使用OpenGL吗(但我的游戏只是一个2D加速计游戏)李>
- 我是否应该只从数据库中获取所需的对象(但这意味着在整个游戏过程中保持对表的访问处于打开状态)
- 或其他人,请张贴您的答案
非常感谢您的回复 正如斯莱顿所评论的,你的问题不是很集中。看起来你关心的是你的应用程序的内存占用和性能,但不确定从哪里开始。我建议您分析您的应用程序。找出它将大部分时间花在处理或分配内存上的位置。然后努力使代码的这一部分更有效率 Android SDK包括一个很好的评测工具,如下所示:
如何滞后?如果时不时出现口吃,可能是GC,这意味着您需要检查分配。您可以使用来检查。(例如,当使用FuleCH样式循环时,存在隐藏的分配。这些分配需要清理,GC将在您的代码中间运行。使用旧<代码>(int i=0;i < AARAYSIZE;I++)<代码>防止。) 另一方面,如果是持续滞后(触摸屏幕,等待200毫秒等待响应),则可能是操作顺序,尤其是任何绘图操作。将
位图
绘制到画布
很慢,使用OpenGL可能会有所帮助。您可能还需要重新构造,以便任何输入在下一次绘制时都有视觉响应
在任何情况下,如果您有特定的问题,它都会有所帮助。任何代码、分析度量等都能帮助我们找到更好的答案。这个非常模糊的问题,不清楚你在问什么我会说滞后的问题才是最重要的。我想如果我写的答案和你的问题一样具体和清晰:“不要写滞后的代码”将位图绘制到画布将是主要原因之一。了解OpenGL的工作原理可能需要我花一些时间。如果我要调整图像大小,即300kb[320x480]到150kb[160x240],然后在画布上调整它的大小,它会解决吗?我不确定,但我不这么认为。根据我的经验,画几个位图或画几十个位图大致相同。我认为限制是整个
surfaceHolder.lockCanvas()
,surfaceHolder.unlockCanvasAndPost()过程。