我正在研究编写一款Android游戏,我很难掌握Android设备。对于那些拥有设备的人来说,仿真器的性能如何与实际设备性能相关?我对图形相关的任务特别感兴趣。
这显然取决于运行模拟器的机器和相关的特定设备,但我在这里说粗略的数字。
这个问题是duplicate,但由于那篇文章已经过时了,我觉得它现在已经无关紧要了。
答案 0 :(得分:13)
一般来说,仿真器比CPU和GPU任务的设备要慢得多。这至少有两个原因:
为了正确看待问题,我的Android工作在英特尔四核2.66GHz上,配有相当不错的显卡。对于在设备上正常工作的视频,我可以有时让它们在模拟器中播放。
模拟器比设备更快,在“磁盘”I / O上。当您在模拟器上写入“flash”时,您正在写入可能驻留在常规硬盘驱动器上的磁盘映像文件,假设您没有使用SSD。实际上,在设备上写入闪存可能会慢很多 - 布拉德·菲茨帕特里克(Brad Fitzpatrick)在上周的Google I | O 2010大会上,引用了高达200毫秒的峰值来写一个字节到闪存。并且,Android,闪存和yaffs2文件系统的组合显然会导致设备在闪存I / O时逐渐变慢,因为闪存填满了。因此,他的建议是在后台线程而不是主应用程序线程中执行任何 flash写入,它可以占用UI并导致“janky”应用程序。
(显然,“janky”是一个技术术语......: - )
BTW,当它出现在网上时,肯定会在YouTube上观看Brad的演示。有时可能有点难以理解,因为他说得很快,但它充满了与性能相关的有用花絮。答案 1 :(得分:2)
检查这个很好的article,其中显示了如何将仿真器的CPU速度与使用BogoMIPS的设备的CPU速度进行比较。
答案 2 :(得分:1)
如上所述,ARM操作码转换为x86是模拟器中滞后的主要来源。
根据我的经验,模拟器确实非常慢,并且无法代表设备,特别是Snapdragon处理器的预期。
即使是模拟器中非常基本的应用程序(我说的是带有几个TextView的LinearLayout)也需要一段时间来加载和执行活动。
但是,大多数情况下,滞后似乎是最初的。通过这种方式,我的意思是如果你在模拟器中滚动一个列表,它将花费一秒钟来识别动作并且最初会有点生涩,但之后变得更加平滑。简而言之,我不建议开发一个使用模拟器的游戏,除了初始编程,调试以及可能看到活动的布局。没有真正的设备你就不会知道可玩性。
附:不要忘记在各种版本的Android上测试您的游戏,并查找在各种Android版本中遇到的常见问题。