其他分享
首页 > 其他分享> > 利用好模拟器

利用好模拟器

作者:互联网

利用好模拟器

这个 session 讲了模拟器的一些知识,帮助我们更加好的利用模拟器进行开发。

模拟器是什么

从功能上理解

模拟器让我们能在 MacOS 上模拟 iOS、watchOS 和 tvOS。
相比真实的设备,有更多的内存和 CPU,并且能够同时运行多个。
作为工程师,停留在这个水平显然是不够的。

从技术上理解

Simulator is iOS, watchOS, or tvOS userspace running on macOS kernel

怎么理解这句话呢?
操作系统可以大略分为 kernel 和 userspace。
kernel 处理关于硬件的抽象及内存分配等。
userspace 自底向上可以分为四层:

每一个模拟器都是这样子一个 userspace。 整体架构如下图:
关于模拟器还有以下事实:

模拟器使用的技巧

手势操作

设置音频输入输出


这样子可以在模拟器放歌曲,在耳机里听歌了。

支持 iCloud 操作

可以登陆 iCloud,也可以手动触发 iCloud 同步。

模拟内存不足

Debug 菜单内,也可以通过键盘快捷键。

模拟器管理

调整模拟器的 size

有三种预置尺寸可以选择

  1. Physical Size
    把手机放上去,和屏幕上一模一样
  2. Point Accurate
    1 UIKit point = 1 AppKit point
  3. Pixel Accurate
    物理像素一致。模拟器的一个物理像素和电脑的一个物理像素对齐。

此外,还可以使用鼠标缩放模拟器,如同操作普通窗口一样。

可以模拟慢速动画

旧的 Xcode 版本使用新版本的模拟器

其实只要有新版本模拟器的 runtime 就好了

传输内容到模拟器上

可以通过拖拽方式,直接把以下五种类型的数据转移到模拟器上。

其他操作

simctl

simtl,其实就是 simulator control,是一个命令行工具,可以用来操作模拟器。

help 命令

可以输入xcrun simctl help 来获取所有帮助信息,也可以输入xcrun simctl help <subcommand> 来获取制定子命令的详细信息,如xcrun simctl help list

list 命令获取列表

输入xcrun simctl list,获取所有模拟器信息,会按照Device TypesRuntimesDevices 来展示所有设备。
list 后可以输入条件来过滤,例子如下

xcrun simctl list devices 'iPhone 8'
== Devices ==
-- iOS 12.2 --
    iPhone 8 (70E73274-90B7-474E-A2C3-A490BE004EEC) (Shutdown)
    iPhone 8 Plus (1C31EE65-6B40-418A-BF83-899AE4F83BCD) (Booted)
-- tvOS 12.2 --
-- watchOS 5.2 --

通过 create 命令创建模拟器

create <name> <device type> <runtime>

通过 lanuch 来启动模拟器上的一个应用

launch <device> <bundle> <arguments>

和用手点击模拟器的图标效果一样

启动和关闭模拟器

分别对应 bootshutdown 命令

clone 模拟器

可以 clone 模拟器中的 App、UserDefaults 等信息。

安装应用到模拟器上

install <device> <example.app>

一些 alias

模拟器的命令,有些需要输入设备名字。有一些别名可以简化这个操作

一个Demo

Jietu20190613-234707@2x

Metal 和模拟器

新的 macOS 系统上运行的新模拟器支持 Metal 了,这有两层含义:

  1. 模拟器运行在 Metal 上,速度更快了
  2. 在模拟器上可以运行 Metal API了,不必在真机上调试

目前模拟器上 UIKitSpriteKitSceneKitCoreAnimationCoreImageMapKit 都是基于 Metal 的。
Session 里通过几个例子来对比了前后的运行速度,确实快了很多很多。
至于在模拟器上运行 Metal,这个我暂时不会。

导图

Getting the Most Out of Simulato

参考

posted on 2019-06-14 09:13  花老????  阅读(378)  评论(0)  编辑  收藏

标签:--,可以,Metal,利用,simctl,模拟,模拟器
来源: https://blog.51cto.com/u_15223551/2834077