为什么Android模拟器比iPhone模拟器慢?

use*_*951 4 iphone android android-emulator ios-simulator

只是好奇.Apple的iPhone模拟器做了很棒的工作吗?

比较时,i3上的i7和iPhone模拟器上运行的android模拟器.iPhone模拟器比真正的iPhone更快.

我没有把事情做好吗?

Cod*_*ers 17

这是建筑决策的问题:

  • iOS模拟器直接在您的CPU上运行本机代码 - 该项目必须重新编译为x86架构才能与模拟器一起使用.模拟器本身只是模拟所有iOS API.

  • 另一方面,Android模拟器使用QEMU来运行ARM(或x86,但ARM更受欢迎)CPU虚拟机,其中包含所有软件堆栈 - Linux内核,Android系统映像等.将其视为模拟硬件.

这是一种权衡 - iOS的运行速度要快得多,但要使它与目标系统100%兼容更难.对于Apple而言,它可能更简单一些,因为iOS和Mac OS有许多共同点.

对于Android来说,模拟整个堆栈很有意义 - 构建跨平台SDK更容易,更容易用它来测试一些系统级组件等.它只是一个不同的生态系统,具有不同的目标.不要忘记,Android模拟器可用于测试使用Android NDK编译的本机ARM库.

今天Android模拟器的性能或多或少可以接受,但在Android早期它只是一场灾难.也就是说,我个人认为用于Android的快速API级本机模拟器将是SDK的一个很好的补充,使得以更快的速度测试要求较低的项目成为可能.

有趣的阅​​读:http://logic-explained.blogspot.com/2011/09/why-is-there-no-x86-native-emulator-for.html

  • 这个答案有些陈旧,但仍然是关于ARM仿真器的良好信息.有更新的模拟器使用英特尔HAX.如果您的英特尔CPU具有虚拟化设置,您将获得更高的性能.图形部分仍然很慢,但你可以降低分辨率来弥补这一点.我也成功在VM上运行Android x86(ctrl-F1,在VM上键入netcfg.在Ctrl-F7上返回GUI.在开发机器上,adb connect <在这里插入VM的IP地址>).如果您没有锁定您的应用程序,Kitkat Android x86版本非常出色 (2认同)