6

既然iOS模拟器是模拟器,那我为什么要专门为它构建呢?模拟器的重点不是在某种虚拟机/沙箱中运行真实代码吗?

那么,为设备/模拟器构建的工作方式以及最终构建的应用程序的实际差异是什么?

4

3 回答 3

9

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

于 2012-04-18T08:36:03.913 回答
6

The simulator build uses the i386 instruction set, since that is what your mac uses.

When you build for an iOS device, you are building either for the armv6 or armv7 instruction sets.

The point of the simulator is so that you can do some quick testing on your mac, without needing to use a device.

To learn more about instruction sets: http://en.wikipedia.org/wiki/Instruction_set

于 2012-04-18T08:35:17.263 回答
4

模拟器和设备应该运行相同的代码,但是应该注意的问题很少。

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

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

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

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

于 2012-04-18T08:39:20.197 回答