我已经写了一个在屏幕上移动位图的游戏应用。它使用一个单独的线程直接写入画布。在我的三星Galaxy Y上,动画似乎在整个游戏中都很流畅,但在"Tabtech m7“平板电脑上,流畅的图形似乎被持续了大约半秒的间歇性冻结所打断,并且间隔了大约三到四秒。有没有可能这只是(廉价的)平板电脑硬件的一个功能,还是更有可能是我编程的某个方面?如果是我,我怎么去诊断原因呢?
发布于 2012-02-25 06:52:55
在您的日志中查看垃圾收集器是否在您冻结时运行。如果是这样的话,您也许可以尝试找出是您还是系统在以不适当的方式分配内存。在DDMS中,您可以查看分配跟踪器,可能会告诉您发生了什么。
发布于 2012-02-25 07:38:56
是的,回声巴斯曼。为了避免GC,请确保您没有在游戏循环中分配任何新对象。此外,如果你做了很多字符串转换(即更新分数),比如你做了Integer.toString(10)之类的事情,那么GC就会被踢开。
https://stackoverflow.com/questions/9439033
复制相似问题