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

时间:2013-03-26 10:16:24

标签: android iphone android-emulator ios-simulator

好奇。 Apple使用iPhone模拟器做了很棒的工作吗?

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

我没有把事情做好吗?

8 个答案:

答案 0 :(得分:16)

这是建筑决策的问题:

  • 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

答案 1 :(得分:2)

iphone,iphone模拟器,苹果笔记本电脑,xcode都是苹果产品

但是机器人 Microsoft Windows的 android -Google eclipse -eclipse供应商

这些工具是不同供应商,为什么Android模拟器速度慢。

我只是在开玩笑:)

答案 2 :(得分:2)

使用系统配置创建Apple Simulator意味着它将自动获取系统的内存,内存,缓存,您无需配置它,因此Iphone Simulator不能充当真正的设备,但在Android的情况下必须提供在创建模拟器之前的所有配置细节,Android模拟器在很大程度上将充当真实设备,但可能比Iphone模拟器慢得多。

答案 3 :(得分:2)

是的,这是真的,emulator(FYI)比模拟器慢。

  

苹果在iPhone模拟器上做了很棒的工作吗?

没有其他开发人员可以回答这个问题,因为iOS不是开源的。

  

我没有把事情做好吗?

不,你是对的。

答案 4 :(得分:1)

首先Android没有模拟器它有Emulator。 其次我相信模拟器的速度取决于你的机器配置。如果您已正确创建AVD并为其提供充足的内存,那么配置越好运行就越好。

答案 5 :(得分:1)

这很简单:

Android模拟真实设备,真正的结构和非常接​​近的行为和布局。

另一方面苹果模拟器不是模拟器,所以你不能指望真正的行为,但它有一个紧密的布局,主要解决IOS,因为你只需要1个设备来测试应用程序的行为。

答案 6 :(得分:0)

Android SDK有一个模拟器,而ios SDK有模拟器。

模拟器的行为与其他类似,但是以完全不同的方式实现。它提供了系统的基本行为,但可能不一定遵守所模拟系统的所有规则。它可以帮助您了解某些工作原理。它使用像处理器,ram等桌面资源,

仿真器是一个行为与其他东西完全相同的系统,并且遵守所模拟系统的所有规则。它实际上是另一个系统的完全复制,直到与模拟系统的输入和输出二进制兼容,但在与原始模拟系统的环境不同的环境中运行。

因此,与模拟器相比,模拟器肯定会很快。

答案 7 :(得分:0)

Android模拟器实际上是一个模拟器,旨在模仿运行Android的移动设备,这意味着它模拟运行Android操作系统的硬件,使其尽可能接近100%相同。 JVM将Java字节码转换为由仿真器解码的ARM指令。

iOS模拟器在更高级别工作,模拟操作系统及其库,将OS调用转换为OS X实现,并在设备旋转或低内存条件下模拟其他方向的事件。当您在iOS模拟器上运行应用程序时,该应用程序将编译为x86,在Mac上本机运行。与Android模拟器不同,您的iOS应用程序不会在模拟器中耗尽内存,因为它不受任何特定iOS设备内存限制的限制。