Android模拟器的性能与实际设备性能相比如何?

时间:2010-05-23 20:15:39

标签: android performance android-emulator

我正在研究编写一款Android游戏,我很难掌握Android设备。对于那些拥有设备的人来说,仿真器的性能如何与实际设备性能相关?我对图形相关的任务特别感兴趣。

这显然取决于运行模拟器的机器和相关的特定设备,但我在这里说粗略的数字。

这个问题是duplicate,但由于那篇文章已经过时了,我觉得它现在已经无关紧要了。

3 个答案:

答案 0 :(得分:13)

一般来说,仿真器比CPU和GPU任务的设备要慢得多。这至少有两个原因:

  1. 模拟器正在运行ARM操作码,将它们转换为等效的x86指令,这很慢
  2. 设备(通常)有图形加速器,而模拟环境没有,尽管运行模拟器的机器上有任何视频卡
  3. 为了正确看待问题,我的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版本中遇到的常见问题。