【问题标题】:What's the point of have multiple (same resolution) iOS simulators?拥有多个(相同分辨率)iOS 模拟器有什么意义?
【发布时间】:2017-05-15 13:02:07
【问题描述】:

我开发 iOS 应用程序已有一段时间了,我知道 iOS 模拟器运行代码的速度比硬件模拟器(即实际设备)快。我在 Apple 的 Testing and Debugging in Simulator 文档网站上阅读了以下内容。

因为模拟器是在 Mac 上运行的应用程序,它可以访问计算机的资源,包括 CPU、内存和网络连接。所有这些资源都可能比移动设备上的资源更快。因此,模拟器无法准确测试应用的性能、内存使用情况和网络速度。

我完全理解。我也明白拥有多个模拟器来测试不同的尺寸等级/分辨率很重要。

但是,我不明白为什么 Apple 会为具有相同分辨率的设备提供如此多的模拟器。请参见下图显示 iPhone 6、6s 和 7 - 所有这些都具有相同的屏幕尺寸和分辨率。

鉴于模拟器以“全速”运行(不管它实际模拟的是哪些设备),拥有所有这些模拟器有什么意义(每个都占用几 GB 的存储空间)?

提前致谢,

洛伊克

【问题讨论】:

  • 请记住,如果您不使用给定的设备模拟器,它不会占用任何空间。
  • 这些设备具有不同的硬件配置。这反映在模拟硬件中。例如,iPhone 6 模拟器不会让您模拟强制触摸
  • 啊,好吧,有道理;谢谢!如果您将其发布为答案,我可以将此问题标记为已解决。

标签: ios iphone xcode ios-simulator


【解决方案1】:

每种设备类型都尝试模拟各自的物理设备,包括诸如强制触摸等功能。如果您的触控板支持强制触摸,模拟器会将其转换为模拟设备上的力,但仅适用于支持它的设备类型。还有诸如图形类和内存类之类的东西可以启用或禁用某些行为。 (理论上,Jetsam 应该比 iPad Pro 模拟器更积极地驱逐 iPhone 5 模拟器上的后台应用程序。)

您可以使用xcrun simctl 创建或删除设备,包括默认设备,尽管 Xcode 更新可能会重新创建默认设备。

如果您想要不同的照片库、权限设置(授予您的应用在一个中使用位置的权限并在另一个中拒绝它)等,您还可以为同一设备类型创建多个模拟器实例。

【讨论】:

  • 说得通——谢谢。只有一个问题; Jetsam 是什么?
  • 当应用程序在后台运行时,它会被挂起,除非它有异常(如播放音频),但系统不一定会立即卸载进程。当前台应用程序需要更多内存时,Jetsam 会发现挂起或低优先级的进程并实际卸载它们。
猜你喜欢
  • 1970-01-01
  • 2017-07-16
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多