Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的游戏使用100%CPU而LunarLander不使用';T_Android_Performance - Fatal编程技术网

Android 为什么我的游戏使用100%CPU而LunarLander不使用';T

Android 为什么我的游戏使用100%CPU而LunarLander不使用';T,android,performance,Android,Performance,基本上,我的问题在标题中是正确的:为什么我的游戏使用100%的cpu,而LunarLander示例没有 我的游戏目前在功能上几乎与LunarLander示例相同,游戏循环有一个单独的线程,在while()循环中更新物理/事件,并持续绘制到屏幕上 然而,当我运行LunarLander并启用调试工具时,它显示了大约50%的cpu使用率(模拟器在我的双核PC上使用了大约25%)。我自己的游戏使用100%的cpu(我的电脑上的模拟器使用50%) 我不一定想要或需要降低cpu负载并提高游戏性能(虽然它在模

基本上,我的问题在标题中是正确的:为什么我的游戏使用100%的cpu,而LunarLander示例没有


我的游戏目前在功能上几乎与LunarLander示例相同,游戏循环有一个单独的线程,在while()循环中更新物理/事件,并持续绘制到屏幕上

然而,当我运行LunarLander并启用调试工具时,它显示了大约50%的cpu使用率(模拟器在我的双核PC上使用了大约25%)。我自己的游戏使用100%的cpu(我的电脑上的模拟器使用50%)

我不一定想要或需要降低cpu负载并提高游戏性能(虽然它在模拟器和较慢的手机上运行有点慢),但我真的不明白为什么LunarLander示例不使用100%?它基本上有一个while(true)循环,在这个循环中,它不断地更新物理并绘制到屏幕上。为什么不能达到100%

我的游戏也很相似:我用一种方法更新我的游戏状态,然后把所有东西都画到屏幕上。首先是背景图像,然后是一些其他图像(LunarLander示例使用可绘制图像,而我使用位图,因为我不必转换它们,而且它们应该更快)。当我不与游戏交互时,甚至没有真正发生任何事情,交互是通过事件完成的,甚至不是在主循环中


有什么想法吗?:-)

任何线程使用少于100%内核的唯一方法是,如果它包含I/O、休眠、与另一个线程竞争,或者任何在某些时候暂停它的事情。因此,如果您多次尝试,您将看到它是如何暂停的。

“我的游戏目前与LunarLander示例几乎相同”-它有什么不同?代码会有很大帮助。我可以发布几千行代码,但这不会让任何人高兴。不同的是,我加载并绘制其他位图。我有一个ontouchlistener,它在移动时设置偏移,以便在另一个位置绘制背景。我在其上绘制位图平铺(来自ArrayList),而不是经过转换的可绘制平铺。就这样。整体结构(游戏循环线程、update()方法、draw()方法)是相同的。您可能希望减少CPU负载。您在移动硬件上的负载与用户的电池电量直接相关。