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

时间:2012-04-18 08:29:34

标签: ios xcode ios-simulator

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

那么设备/模拟器的构建方式与实际构建的应用程序的区别有何不同?

3 个答案:

答案 0 :(得分:8)

  

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

答案 1 :(得分:6)

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

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

模拟器的目的是让您可以在Mac上进行快速测试,而无需使用设备。

要详细了解指令集:http://en.wikipedia.org/wiki/Instruction_set

答案 2 :(得分:2)

模拟器和设备应该运行相同的代码,但是很少有人应该考虑的问题。

  1. 模拟器无法运行设备可以运行的所有功能,例如模拟器不与摄像机交互,GPS数据不存在(但您可以从选项中设置固定位置),并且除此之外还有其他一些事情。

  2. 模拟器可以比在开发过程中将代码转储到设备上更快地检查代码和功能,但是模拟器正在使用计算机的内存和CPU,这意味着它不能反映出的性能。真实的装置,速度和记忆力。

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

    我可以详细说明这个主题,但我这是对你问题的快速回答。