1. 类比
初学Ios开发,首先应该了解开发的应用所生存的环境。就像跳槽到某个公司做一枚码农,你得先了解公司的各个部门,以便以后出了问题知道应该找哪个部门。Ios应用所生存的环境正是Ios操作系统。iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer),如下图:
2. Core OS—高级管理层
位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。iPhone OS提供了许多访问操作系统低层功能的接口集,iPhone 应用通过LibSystem库来访问这些功能,这些功能都会通过C语言的API来提供。如同公司的高级管理层,一起指令都是从这里下达,制定公司发展战略,负责帮公司找钱,负责公司对外重大合作,以及公司内部组织。作为一个产品部的屌丝,正常情况下是不用接触这些人的,但是也还是有机会接触到,可以通过一些通道。正常情况下,App开发也是不和这些直接打交道,但是他们也提供很一些接口集,以备非正常情况下调用。不过最好还是不要和他们直接打交道,大家思维方式不一样嘛(他们是C的思维,我们是Object—C)。
3. Core Service-财务部
加入一家公司,一是金钱,二是发展;发展还是太虚了,所以更多的是奔着钱,没办法,生存嘛,当然是给的越多越好。Core Services在Core OS基础上提供了更为丰富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation,就是因为它提供了一系列处理字串,排列,组合,日历,时间等等的基本功能.Foundation是属于Objective-C的API,Core Fundation是属于C的API。Foundation.Framework是我们在做App开发过程中用的比较多的基础框架,就像我们工作的结果最终还是转化为工资,每个月都等着发工资,Foundation.Framework做开发App还是用的比较多的。
4. Media -人事部
通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:Core Audio , OpenGL, Audio MixingAudio Recording ,Video Playback ,JPG,PNG,TIFFPDF ,Quartz ,Core Animation,OpenGL ES...当我们有一些日常有疑问的事情,例如公司的社保是如何交的,公积金交的情况,这些事情应该是问人事部了,当然你要提加薪,也是找人事部的吧。
5. Cocoa Touch-开发部
大部分我们的工作是跟开发部的同事打交道。这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它是Objective-C的API,其中最核心的部分是UIKit.Framework,应用程序界面上的各种组件,全是由它来提供呈现的, 除此之外它还负责处理屏幕上的多点触摸事件,文字的输出,图片,网页的显示,相机或文件的存取,以及加速感应的部分等。我们从事Ios开发,大部分工作是实现各种交互或者说Ui界面。
总结:当我们要开发iPhone程序的时候,首先要现从上层入手,优先使用Objective-C封装后的库,也就是通过 UIKit.framework搭配Foundation.framework来进行开发,而当面对一些比较复杂的功能时,像是多媒体的处理或是绘图,再往下层去找寻相关的framwork开完成。