iOS设备和模拟器的构建实际上有何不同?

Mr.*_*Boy 6 xcode ios ios-simulator

由于iOS模拟器是一个模拟器,为什么我需要专门为它构建?在某种VM /沙箱中运行真实代码的模拟器不是重点吗?

那么,设备/模拟器的构建方式与实际构建的应用程序的不同之处存在哪些实际差异呢?

Vig*_*esh 8

在iOS设备上本机运行的应用程序是ARM程序.但是,在iOS模拟器中运行的应用程序是一个普通的32位(i386架构)Mac OS X程序.换句话说,模拟器不会将iOS设备模拟到硬件级别.它提供了iOS环境的忠实副本,重新实现在Mac上本机运行.


Pte*_*tyl 6

模拟器构建使用i386指令集,因为这是你的mac使用的.

在为iOS设备构建时,您正在为armv6或armv7指令集构建.

模拟器的重点是,您可以在Mac上进行一些快速测试,而无需使用设备.

要了解有关指令集的更多信息,请访问:http://en.wikipedia.org/wiki/Instruction_set


che*_*ewy 5

模拟器和设备应该运行相同的代码,但有一些问题需要注意。

  1. 模拟器无法运行设备可以运行的所有功能,例如模拟器不与相机交互,不存在 GPS 数据(但您可以从选项中设置固定位置),并且这些功能几乎没有其他功能线。

  2. 与开发时将代码转储到设备上相比,模拟器可以更快地检查您的代码和功能,但是模拟器正在使用您计算机的内存和 CPU,这意味着它不会反映真实设备上的性能、速度和内存明智的。

好的做法是主要在模拟器上进行测试和开发,当您的代码稳定并按计划工作时 - 是时候在设备本身上测试它的性能和其他特定于设备的问题了。

我可以详细阐述该主题,但这是对您问题的快速回答。