iOS-操作系统的理解和回答面试问题的小技巧

写这篇文章是因为昨天一个朋友去面试回来,和我说面试官问他什么是iOS,他很是无语不知道怎么回答。

今天想了下,其实这种问题是很基础的,可能对方只是想听一些你对操作系统的理解,所以类似的问题都可以往苹果移动操作系统的原理方面回答,下边是我想到的一些回答思路。

这里说下自己总结的回答面试问题的小技巧,之前面试其他人,有的人知道问题,但是回答的方式很乱,让人感觉他自己都不熟悉,这样的人在开发也是一样的,让人不放心,回答问题应该以金字塔原理来回答 总-分-总,这里我以AFNetWorking为参考来举例。

问题:请介绍下你对AFNetWorking的理解?

1、先把问题的大概原理讲一遍 比如说AFNetWorking是一款轻量级网络请求开源框架,基于网络进行扩展的高性能框架,降低了对处理网络请求的难度,现在使用的是AF3.x版本。

除去Support Files,AF分为5个功能模块:

  • 网络通信模块(AFURLSessionManager、AFHTTPSessionManger)

  • 网络状态监听模块(Reachability)

  • 网络通信安全策略模块(Security)

  • 网络通信信息序列化/反序列化模块(Serialization)

  • 对于iOS UIKit库的扩展(UIKit)

其核心当然是网络通信模块AFURLSessionManager。AF3.x是基于NSURLSession来封装的。所以这个类围绕着NSURLSession做了一系列的封装。而其余的四个模块,均是为了配合网络通信或对已有UIKit的一个扩展工具包。(总体介绍到这里就可以了)

2、再分开讲一遍每个功能模块的原理,要把核心功能说出来。(这个是讲解AF的实现,这块讲的深度,就能看出开发者的理解能力)

这块可以说下AF3.0与2.0的区别,底层实现,每个模块的实现,比如说AF怎么实现的安全传输等,我就不详细举例了。

3、介绍说完之后,再总体总结下AF的优缺点和你都在哪里使用过,使用的时候遇到过什么问题怎么解决的,尽量往核心功能上回答。

比如说:AF是在基础urlsesson上封装了一层,在传参方面更灵活;回调更友好;支持返回数据序列化;支持文件上传,断点下载;自带多线程,防死锁;处理了Https证书流程,节省移动端开发;支持网络状态判断等。

以这样的方式回答问题,不仅面试官好理解,你自己的思路也是顺的,不仅是面试,在学一个新的技术也可以以同样的方式去学习。

好,回来,开始继续说操作系统的问题;

如果是我,我会先介绍下操作系统的由来,比如说iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS(iOS的入门级介绍)。

然后说下iOS的体系架构,iOS架构分为四个层次:中心操作体系层(the Core OS layer),中心效劳层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。体系操作占用大概500MB的存储器空间。(大概说到这就行了,也可以详细介绍如下)

IOS架构

Core OS层主要内容

Core OS是最为核心的系统,包括了多种硬件管理,还有安全管理等内容,是iOS的核心应用。事实上,iOS是基于Unix系统开发的,自然跟Unix一样了。

OSX Kernel    Power Management

Mach 3.0    Keychain Access

BSD     Certificates

Sockets     File  System

Security     Bonjour

Core Services层

iOS操作系统的Core Services包含了多种服务,例如URL服务,还有大量的网络应用等

Collections   Core Location

Address Book    Net Services

Networking     Threading

File Access     Preferences

SQLite       URL   Utilities

Media层

苹果iOS的Media层主要包括了各种媒体文件的处理,例如JPEG、PNG以及TIFF等,还有PDF文件的处理,这些成为iOS系统的处理内容,成为了基本的媒体应用,并且可以被各种应用调用,提高了iOS的系统性能。

Core Audio   JPEG,PNG,TIFF

OpenAL     PDF

Audio Mixing   Quartz(2D)

Audio Recording     Core Animation

Video Playback     OpenGL ES

Cococa Touch层

最上层的一个系统应用层是Cocoa Touch,这是苹果iOS系统的最接近用户的层面,包括了触摸、位置服务、摄像头等应用。

Multi-Touch       Alerts

Core Motion       web view

View Hierarchy    Map kit

Localization        Image Picker

Controls       camera

 

以上是简单的说明,如果想深度理解操作系统可以看下边这个文章

http://blog.okeyang.com/blog/2015/07/24/shen-ru-jie-xi-mac-os-x-and-ioscao-zuo-xi-tong--du-shu-bi-ji/

 

其实问题都很简单,回答的深度和理解能力是和给出你工资成正面的,所以越简单的问题,你的回答越深,越能体现你的能力。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值