开发者社区> 华章计算机> 正文

《Swift iOS应用开发实战》——1.5 iOS模拟器

简介:
+关注继续查看

本节书摘来自华章计算机《Swift iOS应用开发实战》一书中的第1章,第1.5节,作者:刘铭 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 iOS模拟器

iOS模拟器是一个运行在Mac上面的应用程序,它允许我们在不使用iOS真机设备的情况下调试所编写的程序项目。它属于iOS SDK的一部分,所以在安装Xcode的时候会直接被装入Mac系统之中。当我们在Xcode中运行应用程序时,可以选择项目是在模拟器中运行还是在真机上面运行。如果选择模拟器,则Xcode会在成功编译代码以后自动将其打开。
下面来设置HelloWorld项目的运行设备。
1)点击工具栏中停止按钮右侧的Scheme字段,(项目名称右侧,“>”后面的部分),此时弹出的菜单中列出了iOS Device、iPhone 4s、iPhone 5、iPad 2、iPad Retina、iPad Air等可选项,如图1-27所示。

image

从Xcode 6开始,我们就不能在iOS模拟器中模拟iPhone 4s之前的设备以及第一代iPad设备了,因为这些设备无法支持iOS 7以上的系统。
1.5.1 iOS模拟器的特性
我们可以使用iOS模拟器模拟不同的设备,其中包括iPhone和iPad系列产品。在系统版本方面,Xcode 6只支持iOS 7和iOS 8。模拟器在运行的时候,可以通过菜单中的“Hardware→Device”来改变iOS的版本,如图1-28所示。
如果需要安装其他不同版本的iOS SDK,需要在Xcode菜单中选择“Preferences→Downloads→Components”,之后选择相应的版本下载即可。

image

通过“Hardware→Device”菜单操作,我们可以在模拟器中切换不同的设备。根据iOS版本的不同,所模拟的设备也有所不同。iOS 8.0比7.1增加了Resizable iPhone和Resizable iPad两个选项,据说这两个选项与iOS 8可能加入的多窗口操作有关。
通过iOS模拟器菜单中的“Rotate Left”(Command+←快捷键)或“Rotate Right”(Command+→快捷键)来调整模拟器的方向,如图1-29所示。
iOS模拟器允许我们模拟一个或两个手指的多点触摸操作。一个手指的操作,比如点击、长按、划动等都可以通过鼠标很好地模拟。实现两个手指的操作需要按住键盘上的Option键,然后按住鼠标拖曳来模拟缩放操作。如果要移动两个手指在屏幕的中心位置,则需要同时按住Shift和Option两个键。想要在模拟器中实现iOS设备的摇动效果,可以通过“Hardware→Shake Gesture”(Control+Command+Z快捷键)来完成。
如果我们开发的应用程序需要地图数据,可以在应用程序运行的时候,使用iOS模拟器模拟一个位置。选择“Debug→Location→Custom Location”,然后输入经纬度数值即可,如图1-30所示。
image

iOS模拟器还可以模拟一个移动的位置,当设计的应用程序需要获取实时改变的地理位置时,这个功能就显得非常有用。iOS模拟器可以模拟的位置包括如下这些:
Apple: 苹果总部。
City Bicycle Ride:在城市中骑自行车。
City Run:在城市中跑步。
Freeway Drive:无确定方向的驾驶汽车。
如果我们开发的应用程序允许用户打印一些东西,在没有兼容AirPrint打印机的情况下,可以使用打印机模拟器模拟打印。打印机模拟器不会在程序启动时自动运行,需要选择“File→Open Printer Simulator”。
1.5.2 模拟器中iOS系统的基本设置
在安装好Xcode后,模拟器中运行的iOS默认语言是英文,默认区域格式是美国,而且输入法也仅有英文一种。作为中国的程序员,我们希望将模拟器设置成和国内iPhone手机用户一样的使用环境,所以需要进行下面几步操作:
1)在Xcode菜单中选择“Xcode→Open Developer Tool→iOS Simulator”。
2)在模拟器的主屏上点击“Settings→General→ Language & Region→iPhone Language”,将语言设置为简体中文。当点击右上角的“Done”按钮以后,会弹出一个确认框,如图1-31所示。在点击确认以后,系统的语言就变成了简体中文。

image


3)在“设置→通用→语言与地区”中将“地区”设置为中国。此外,在语言与地区界面中我们还可以看到“区域格式示例”,包括时间、日期、货币和数字格式。
4)进入“设置→通用→键盘→键盘”,确定其中有简体中文的输入法。如果没有,则选择添加新键盘,选中“简体中文”即可,这样在虚拟键盘中就可以输入中文了。
iOS模拟器最主要的目的就是有效节省程序员开发的时间,如果一个应用程序要在真机上调试,需要经过上传、安装、运行这三个阶段,而这将花费很长的时间,因为哪怕是一点点代码的修改,每次测试都需要经历这三个阶段。假如这个应用程序中包含了大量的图片、音频或视频文件,相信这将是对开发人员耐性的一个巨大挑战。
在iOS模拟器上应用程序的运行效果(如执行速度、切换视图的平滑程度等)并不等同于在iPhone真机上的运行效果,毕竟iPhone的硬件无法与Mac相比,而且每代iPhone手机的推出都伴随着CPU性能的增强。避免这种情况的最好方法就是在真机上进行测试(一个成熟的应用至少需要在2~3种iOS设备上进行测试),如果仍然出现上述问题,就需要优化算法。
1.5.3 在模拟器中安装和卸载应用程序
如果在Xcode中运行应用程序项目,该项目就会被自动安装到模拟器之中。
我们不能删除iOS模拟器中默认的应用程序,如照片、通讯录、设置、Game Center、报刊杂志和Safari。要卸载(删除)iOS模拟器中自己编写的应用程序,操作步骤和真机上是一样的。
1)在应用程序图标上按住鼠标,直到图标开始摇晃。
2)当图标摇晃的时候,可以看到其左上角有一个“X”按钮。点击要删除应用程序图标左上角的“X”按钮,此时弹出警告对话框确认删除操作,如图1-32所示。

image


4)点击“删除”按钮,确认卸载操作。
对于代码存有Bug的应用程序,在模拟器中运行的时候可能会引起崩溃。此时Xcode将会运行代码调试器,进入Debug状态。我们只要点击Xcode工具栏中的“Stop”按钮就可以结束应用程序在模拟器中的运行并关闭代码调试器。
5)如果想快速清空模拟器中的全部应用程序,可以选择“设置→通用→Reset”,点击“还原位置与隐私”,在弹出的警告视图中点击“还原警告”即可。
1.5.4 iOS模拟器的限制
尽管iOS模拟器可以完美地运行我们编写的iOS应用程序,但还是有一定的局限性的,它不能完成下面这些操作:
模拟手机来电的状态
使用重力加速器和三轴陀螺仪
发送和接收短信息
从App Store上下载安装应用程序
使用前后置摄像头
使用设备的麦克风(如果开发设备具备麦克,则可以使用)
一些OpenGL ES的核心特性
尽管iOS模拟器存在上面的这些限制,但对于一般应用程序来说还是足以应付的,只不过它还不能完全代替在真机上的测试。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
xcode反汇编调试iOS模拟器程序(七)Debug与Release的区别
首先自己写一段代码,加好断点,分别在Build Configuration为Debug和Release下运行,查看反汇编 - (void)test { UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10.
779 0
IDA反汇编/反编译静态分析iOS模拟器程序(四)反汇编的符号信息与改名
首先看看windows IDA和xcode的反汇编有什么不同。因为不确定直接分析UIKit的代码会不会有法律问题,还是自己写个例子吧。分析UIKit的时候因为没有完整的debugging symbols,所以得到的反汇编信息会比自己写的代码较少。
934 0
xcode反汇编调试iOS模拟器程序(一)查看反汇编
iOS模拟器程序的实质就是Mac OS X程序,只不过它需要以模拟器为载体来运行显示。故它的反汇编代码指令都是x86 CPU的,不是真机上的arm指令。
1140 0
Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-4 熊猫的跳和打滚
原文:Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-4 熊猫的跳和打滚 之前我们学会了跑的动作,现在我们可以利用同样的方法来实现了跳和打滚的动画。   …… class Panda : SKSpriteNode { …… //跳的纹理集合 let jumpAtlas = SKTextureAtlas(named: "jump.
858 0
swift语言实战晋级-1 Swift开发环境的搭建
原文:swift语言实战晋级-1 Swift开发环境的搭建     想要进行Swift的学习,必须要有个开发环境。简单的说就是装好了Xcode的Mac系统。那么接下来我们就简单了解一下这方面的内容。   1.1 下载Xcode        Xcode是苹果公司出的编程工具,类似于微软出品的visual studio,编写Java的eclipse,开发Flash的Flash IDE。
1086 0
xcode反汇编调试iOS模拟器程序(八)反汇编自己的代码来掌握规则
掌握了基本技巧后,基本上已不难理解所有的反汇编结果。授之以鱼不如授之以渔: 通过观察自己写的代码的反汇编来掌握各种代码的反汇编结果,从而逆向推测系统代码的源码。
984 0
纯键盘开发实战(Mouseless Programming)
作为一个践行Mouseless Programming的开发者,来谈谈自己在日常工作中是如何做到「几乎」不用鼠标的。 在说具体的「技巧」之前,先聊一聊纯键盘开发的几个原则: 1. **动机**, 动机要单纯,纯键盘开发不是为了耍酷, 你的动机应该是提高「效率」:) 2. **键盘只是工具,思想才是关键**, 代码和问题先想清楚再下手,想清楚远比写的快重要! 3. **键盘不要经
1879 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载