通常在招聘面試中遇到熟悉iOS SDK,那么到底怎么描述?
iOS的整體架構(gòu)圖分為4層,由上往下--Cocoa Touch層,Media層,Core Services層和Core OS層。下面概要介紹這4層。
1. Cocoa Touch層
該層提供了構(gòu)建iOS應(yīng)用的一些基本系統(tǒng)服務(wù)(如多任務(wù)、觸摸輸入和推送通知)和關(guān)鍵框架。
? ? 框架 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 前綴 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明
Address Book UI ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 訪問用戶聯(lián)系人信息
Event Kit UI ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?EK ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?訪問用戶日歷事件數(shù)據(jù)
Game Kit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GK ? ? ? ? ? ? ? ? ? 提供能夠點對點的網(wǎng)絡(luò)通API
iAD ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AD ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在應(yīng)用中嵌入廣告
Map Kit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MK ? ? ? ? ? ? ? ? 應(yīng)用中嵌入地圖和地理信息編碼等
Message UI ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MF ? ? ? ? ? ? 提供與發(fā)送E-mail相關(guān)的API
PhotosUI? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? PH? ? ? ? ? ? ? 照片UI相關(guān)的API(iOS8 替代Assets Library)
Twitter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TW ? ? ? ? ? ? 提供發(fā)送Twitter的接口
UIKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? UI ? ? ? ? ? ? ? ?提供UI類(重要的面試常問UI優(yōu)化技巧)
2. Media層
該層提供了圖形、音頻、視頻和AirPlay技術(shù),包括的框架如下
框架? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 前綴? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明
Assets Library ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AL ? ? ? ? ? ? ? ? ? ? ? ?提供訪問用戶圖片和視頻接口
Audio ToolBox ? (C) ? ? ? ? ? ? ? ? ? ? Audio ? ? ? ? ? ? ? 錄制或播放音頻、音頻流及格式轉(zhuǎn)換
Audio Unit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Audio,AU ? ? ? ? ? 可以使用內(nèi)置音頻單元服務(wù)以及音頻處理模塊
AV Foundation ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AV ? ? ? ? ? ? ? ?提供播放與錄制音頻和視頻的OC接口
Core Audio ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Audio ? ? ? ? ? ? ? ? 提供錄制、制作、播放音頻的C語言接口
Core Graphics ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CG ? ? ? ? ? ? ? ? ?提供Quartz 2D接口
Core Image ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CI ? ? ? ? ? ? ? ? ? ?提供操作視頻與靜態(tài)圖像的接口
Core MIDI ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? MIDI ? ? ? ? ? ? ? 用于處理MIDI的數(shù)據(jù)底層的API
Core Text ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CT ? ? ? ? ? ? ? ? ? ?提供渲染文本和處理字體的簡單、高效的C語言接口
Core Video ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CV ? ? ? ? ? ? ? ? ? ?處理音頻或視頻的API
Image I/O ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CG ? ? ? ? ? ? ? ? ? ? ? 包含一些讀寫圖像數(shù)據(jù)類
GLKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GLK ? ? ? ? ? ? ? ?包含構(gòu)建復雜OpenGL ES應(yīng)用的OC實現(xiàn)類
Media Player ? ? ? ? ? ? ? ? ? ? ? ?MP ? ? ? ? ? ? ? ? 包含全屏播放接口
OpenAL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AL ? ? ? ? ? ? ? ? ? 包含OpenAL(跨平臺的音頻)的C語言接口
OpenGL ES ? ? ? ? ? ? ? ? ? ? ? EAGL,GL ? ? 包含OpenGL ES(跨平臺的2D/3D圖形庫)的C語言接口
Quartz Core ? ? ? ? ? ? ? ? ? ?CA ? ? ? ? ? ? ? ? ? ? 提供動畫接口類
Sprite Kit ? ? ? ? ? ? ? ? ? ? ? ?SK ? ? ? ? ? ? ? ? ? ? 是蘋果提供的基于2D游戲開發(fā)引擎(iOS,Mac OS X游戲開發(fā))
Scene Kit ? ? ? ? ? ? ? ? ? ? ?SCN ? ? ? ? ? ? ? ? ? ? ? 是一種高級別3D圖形框架,能狗幫助我們在App中創(chuàng)建3D動畫場景和特效
3. Core Services層
該層提供了CloudKit、HealthKit、HomeKit、應(yīng)用內(nèi)購買、SQLite數(shù)據(jù)庫和XML技術(shù)等技術(shù),包括框架如下
框架? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 前綴? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明
Accounts ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?用于訪問用戶的Twitter賬戶(iOS5之后才有)
AddressBook ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AB ? ? ? ? ? ? ? ? 訪問用戶聯(lián)系人信息
AdSupport ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AS ? ? ? ? ? ? ? ? ?獲取iAD廣告標識
CFNetwork ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CF ? ? ? ? ? ? ? ? ? 提供訪問Wi-Fi網(wǎng)絡(luò)和蜂窩電話網(wǎng)絡(luò)的API
CoreData ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NS ? ? ? ? ? ? ? ? ? 提供管理應(yīng)用數(shù)據(jù)的ORM接口
CoreFoundation ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CF ? ? ? ? ? ? ? ? ? 是iOS中最基本的框架,包括數(shù)據(jù)集
Core Location ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CL ? ? ? ? ? ? ? ? ? ? 提供定位服務(wù)的API
Core Media ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CM ? ? ? ? ? ? 提供AV Foundation框架使用的底層媒體類型??梢跃_的控制音頻或視頻的創(chuàng)建和展示
CoreMotion ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CM ? ? ? ? ? ?接收和處理重力加速計及其他運動事件
CoreTelephony ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CT ? ? ? ?提供訪問電話基本信息的API
Event Kit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?EK ? ? ? ? 訪問用戶的日歷事件數(shù)據(jù)
Foundation ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NS ? ? ? ?為Core Foundation框架的許多功能提供OC封裝,是OC最為基本的框架
JavaScriptCore.framework ? ? JS ? ? ? ? 提供基于OC語言封裝的標準JS對象,通過該框架可以實現(xiàn)OC與JS的互調(diào)
MoblieCoreServices ? ? ? ? ? ? UT ? ? ? ? 定義統(tǒng)一類型標識符(UTI)使用的底層類型
Newsstand Kit ? ? ? ? ? ? ? ? ? ? NK ? ? ? ? 提供在后臺下載雜志和新聞的API接口(iOS5后)
PassKit ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PK ? ? ? ? ? 提供訪問各種優(yōu)惠券的API(iOS6后)
QuickLook ? ? ? ? ? ? ? ? ? ? ? ? QL ? ? ? ? 該框架可以預(yù)覽無法直接查看的文件內(nèi)容,例如打開PDF文件
Social ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SL ? ? ? ? ? 提供社交網(wǎng)絡(luò)訪問API,中國區(qū)提供新浪微博API(iOS6后)
Store Kit ? ? ? ? ? ? ? ? ? ? ? SK ? ? ? ? ? ? ? ?提供處理應(yīng)用內(nèi)置收費的資金交易
SystemConfiguration ? SC ? ? ? 用于確定設(shè)備的網(wǎng)絡(luò)配置,也可以用于判斷某個主機服務(wù)是否可以使用
Cloud Kit ? ? ? ? ? ? ? ? ? ? CK ? ? ? ?開發(fā)Cloud應(yīng)用的API
Health Kit ? ? ? ? ? ? ? ?HK ? ? ? ? 開發(fā)健康和健身服務(wù)的API,在一個位置上訪問共享和健康相關(guān)的信息
Home Kit ? ? ? ? ? ? HM ? ? ? ? ? ? ? ? 能夠與用戶家中連接的設(shè)備通信并進行控制
4. Core OS層
該層提供一些一些低級功能,開發(fā)中一般不直接使用。該層包括的主要框架
框架? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 前綴? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明
Accelerate ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? AC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?訪問重力加速計API
Core Bluetooth ? ? ? ? ? ? ? ? ? ? ? ? ? ? CB ? ? ? ? ? ? ? ? ? ? ? ? ? 訪問低能耗藍牙設(shè)備API
External ? ? Accessory ? ? ? ? ? ? ? ? EA ? ? ? ? ? ? ? ? ? ? 訪問外圍配件API
Ceneric Security Services ? ? ? ?gss ? ? ? ? ? ? ? 提供一組安全相關(guān)的服務(wù)
Security ? ? ? ? ? ? ? ? ? ? ? CSSM,Sec ? ? ? ? 管理證書、公鑰、私鑰和安全信任策略API
LocalAuthentication ? ?LA ? ? ? ? ? ? ? ? 通過用戶指定的安全策略進行安全認證