iPhone模拟器和Android模拟器之间的区别

Posted

技术标签:

【中文标题】iPhone模拟器和Android模拟器之间的区别【英文标题】:Difference between iPhone Simulator and Android Emulator 【发布时间】:2011-05-31 11:36:47 【问题描述】:

iPhone模拟器和android模拟器有什么区别?我听说有人说模拟器真的模拟了目标设备,但在模拟器的情况下是不正确的。

我认为 Android 模拟器会模拟目标设备的处理速度、内存使用情况,但模拟器不会模拟设备。

【问题讨论】:

是的,Android 模拟器就是这样。我对 iPhone 或其模拟器一无所知。 只是给你一个估计 - 在今天的 PC(Core2 Duo @2.9 GHz,3 GB RAM)上,你可以预期 Android 模拟器的运行速度会比第一代设备(HTC Dream、Hero、三星角宿) 总而言之——一个模拟硬件,另一个模拟软件:) 相关帖子 - Simulator or Emulator? What is the difference? 顺便说一句,Android 模拟器(Android Studio 附带的那个)不模拟设备,而只是为特定设备构建的 Android 操作系统。因此它可以被称为“Android 手机模拟器”,类似于“iPhone 模拟器”(它反过来模拟 ios,但只模拟 iPhone)。但是,有真正的 Android 手机模拟器,例如 BlueStacks - 它们可以运行原生应用程序,并且是真正的模拟器。 【参考方案1】:

免责声明:我只是 iPhone 开发者,不是 Android 开发者。

你是对的,模拟器和模拟器的区别在于模拟器模仿了实际设备上的软件硬件环境。另一方面,模拟器只模拟软件环境。否则,他们可以访问主机系统的所有硬件资源,例如磁盘空间、内存和处理器速度。

Apple 一直强调设备测试的重要性,因为 iPhone Simulator 不模拟 iPhone 处理器、磁盘驱动器、内存限制等等。除非您的 Mac 自己在努力管理资源,否则您几乎不会收到内存警告,除非您从模拟器的菜单项中(再次)模拟内存警告。

事实上,如果你进入设置>通用>关于,你会看到模拟器的磁盘容量和它所安装的Mac的文件系统是一样的:

【讨论】:

一个好问题的好答案【参考方案2】:

虽然android模拟器模拟了ARM处理器和某些硬件,但它仍然不能很好地匹配CPU性能。

作为一个模拟器,它可以很好地匹配内存消耗,它可以很好地模拟某些简单的设备,但当设备变得复杂时会失败,例如移动 GPU 和硬件媒体解码器。并且由于仿真逻辑致力于将每条 ARM 指令转换为 X86 指令并执行其性能消耗,并且设计上不精确。

由于编程模型是 Java,这种设计不会为应用程序开发人员购买任何东西,因为模拟器上的性能并不能反映设备上的性能(由于仿真速度和缺少硬件设备),而且更常见的是调试周期很慢,带来不便。唯一的优点是应用程序符合模拟器工作,因为它在设备上(无需重新编译)。

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

【讨论】:

以上是关于iPhone模拟器和Android模拟器之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 单元格布局与 iPhone 12 pro 和 promax 的区别

Sketch和iPhone模拟器之间的颜色差异[重复]

PhoneGap 的 vibrate() 和 beep() 函数在 iPhone、Android 模拟器中中断

iPhone 6 上的模拟器和物理设备之间的差异

AppleWatch 模拟器和 iPhone 模拟器之间的 transferUserInfo 停止从 Xcode 11 工作

对于相同的 iPhone 5s,iOS 模拟器在 ios 7.1 和 ios 8.2 之间具有不同的屏幕高度