iPhone模拟器和安卓模拟器的区别

63

iPhone模拟器和Android模拟器有什么区别?我听人们说过,在模拟器的情况下,它并没有真正地模拟目标设备。

我认为Android模拟器模仿了目标设备的处理速度和内存使用情况,而模拟器则不会模拟设备。


3
没错,关于Android模拟器的说法是正确的。至于iPhone或其模拟器,我一无所知。 - Mudassir
仅供参考 - 在今天的PC上(Core2 Duo @ 2.9 GHz,3 GB RAM),您可以预期Android模拟器的工作速度略慢于第一代设备(HTC Dream,Hero,Samsung Spica)。 - tomash
总的来说 - 一个是模拟硬件,另一个只是模拟软件 :) - controlbox
顺便说一句,Android模拟器(即Android Studio自带的那个)并不是模拟设备,而只是为特定设备构建的Android操作系统。因此它可以被称为“Android手机模拟器”,类似于“iPhone模拟器”(它模拟iOS,但仅模拟iPhone)。然而,真正的Android手机模拟器,比如BlueStacks-这些可以运行本地应用程序,并且是真正的模拟器。 - metalim
2个回答

81

声明:我只是一位iPhone开发者,不是Android开发者。

您说得对,模拟器和仿真器的区别在于模拟器模仿了实际设备上找到的软件硬件环境。而仿真器则仅模拟软件环境,但否则可以访问主机系统的所有硬件资源,如磁盘空间、内存和处理器速度。

Apple始终强调设备测试的重要性,因为iPhone模拟器不会模拟iPhone处理器、磁盘驱动器、内存限制等等。除非您模拟器中模拟(再次)从模拟器菜单项触发的内存警告,否则几乎不会出现内存警告。

实际上,如果您前往设置 > 通用 > 关于本机,您会发现模拟器的磁盘容量与安装它的Mac文件系统相同:


很好的答案,回答了一个好问题。 - Mikayil Abdullayev

23

虽然 Android 模拟器可以模拟 ARM 处理器和某些硬件,但它仍无法很好地匹配 CPU 性能。

作为一个模拟器,它可以很好地匹配内存消耗,可以很好地模拟某些简单设备,但在设备变得复杂时失败,例如移动 GPU 和 HW 媒体解码器。由于模拟逻辑需要将每个 ARM 指令翻译成 X86 指令并执行,因此它会占用大量性能,并且按设计不是周期精确的。

采用 Java 编程模型的设计对应用程序开发人员没有任何优势,因为模拟器上的性能并不能反映在设备上的性能(由于模拟速度和缺失的硬件设备),更常见的是调试周期慢而不方便。唯一的优点是为模拟器编译的应用程序在设备上也能正常工作(无需重新编译)。

在 iPhone 的模拟器模型中,苹果公司意识到他们无法完全匹配设备,因此他们甚至不尝试,作为回报,他们给开发人员提供了快速的周期时间和增强的工具支持,以有效地开发应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接