分析ios框架

很久之前就想寫點什么東西,感覺總是很浮燥不夠成熟,從今起為了走向自建靜態(tài)庫(.a 或者第三方framework,雖然這里的framework跟系統(tǒng)真正動態(tài)庫長相一樣,但仍然是靜態(tài)庫)開發(fā),開始可以提供他人實用的框架,為此重溫下知識 虎囚。


Core OS: 底層處理框产,提供上層支撐(其中包括內(nèi)核環(huán)境襟士、驅(qū)動及操作系統(tǒng)底層UNIX 接口)。

?由FreeBSD和Mach所改寫的Darwin, 是開源、符合POSIX標(biāo)準(zhǔn)的一個Unix核心砰琢。這一層包含或者說是提供了整個iPhone OS的一些基礎(chǔ)功能迈勋,比如:硬件驅(qū)動, 內(nèi)存管理勉耀,程序管理,線程管理(POSIX)粗蔚,文件系統(tǒng)尝偎,網(wǎng)絡(luò)(BSD Socket),以及標(biāo)準(zhǔn)輸入輸出等等,所有這些功能都會通過C語言的API來提供鹏控。

iPhone OS提供了許多訪問操作系統(tǒng)底層功能的接口集,并通過LibSystem庫萊訪問這些功能冬念。如:線程、網(wǎng)絡(luò)(sockets)牧挣、文件系統(tǒng)訪問急前、標(biāo)準(zhǔn)I/O、Bonjour和DNS服務(wù)瀑构、內(nèi)存分配裆针、數(shù)學(xué)計算刨摩、區(qū)域信息。

介紹下POSIX世吨、FreeBSD通往開發(fā)跨平臺應(yīng)用,有必要需要了解點背景:

POSIX表示可移植操作系統(tǒng)接口(Portable Operating System Interface 澡刹,縮寫為 POSIX ),POSIX標(biāo)準(zhǔn)定義了操作系統(tǒng)應(yīng)該為應(yīng)用程序提供的接口標(biāo)準(zhǔn)耘婚,是IEEE為要在各種UNIX操作系統(tǒng)上運行的軟件而定義的一系列API標(biāo)準(zhǔn)的總稱罢浇,其正式稱呼為IEEE 1003,而國際標(biāo)準(zhǔn)名稱為ISO/IEC 9945沐祷。

POSIX標(biāo)準(zhǔn)意在期望獲得源代碼級別的軟件可移植性嚷闭。換句話說,為一個POSIX兼容的操作系統(tǒng)編寫的程序赖临,應(yīng)該可以在任何其它的POSIX操作系統(tǒng)(即使是來自另一個廠商)上編譯執(zhí)行胞锰。


FreeBSD是一種類UNIX操作系統(tǒng),是由經(jīng)過BSD兢榨、386BSD和4.4BSD發(fā)展而來的Unix的一個重要分支嗅榕。FreeBSD 為不同架構(gòu)的計算機(jī)系統(tǒng)提供了不同程度的支持。并且一些原來BSD UNIX的開發(fā)者后來轉(zhuǎn)到FreeBSD的開發(fā)吵聪,使得FreeBSD在內(nèi)部結(jié)構(gòu)和系統(tǒng)API上和UNIX有很大的兼容性凌那。由于FreeBSD寬松的法律條款,其代碼被好多其他系統(tǒng)借鑒包括蘋果公司的MacOS X吟逝,正因此由于MacOS X的UNIX兼容性案怯,使得Mac OS X獲得了UNIX商標(biāo)認(rèn)證。

Accessory.framework 澎办、External Accessory.framework 嘲碱、Security.framework


Core Services:該層提供了大量功能,比如Foundation.framework和CoreFoundation.framework.

Foundation類層次的根是NSObject類局蚀,它(和NSObject及NSCopying協(xié)議一起)定義了基本的對象屬性和行為麦锯。

經(jīng)常涉及運用的系統(tǒng)庫,以及簡單介紹:

AddressBook.framework

?? 支持編程訪問存儲于用戶設(shè)備中的聯(lián)系人信息琅绅。如果應(yīng)用程序使用到聯(lián)系人信息扶欣,則可通過該框架訪問并修改用戶聯(lián)系人數(shù)據(jù)庫的記錄。

CFNetwork.framework

提供一組高性能基于C語言的接口千扶,它們?yōu)槭褂镁W(wǎng)絡(luò)協(xié)議提供面向?qū)ο蟪橄蟆?/p>

1.對協(xié)議棧進(jìn)行更精細(xì)的控制料祠,而且可以使用諸如 BSD socket這類底層結(jié)構(gòu)。

2.簡化FTP澎羞、HTTP服務(wù)器通訊髓绽、DNS主機(jī)解析任務(wù)

應(yīng)用場景包括

1.使用SSL或TLS創(chuàng)建加密連接

2.使用BSD sockets

3.解析DNS主機(jī)

4.使用HTTP,校驗HTTP以及HTTPS服務(wù)器妆绞。

5.使用FTP服務(wù)器

6.發(fā)布顺呕、解析并瀏覽 Bonjour服務(wù)枫攀。

Core Data.framework

Core Data框架是一種管理模型-視圖-控制器應(yīng)用程序數(shù)據(jù)模型的技術(shù),它適用于數(shù)據(jù)模型已經(jīng)高度結(jié)構(gòu)化的應(yīng)用程序株茶。通過此框架来涨,您再也不需要通過編程定義數(shù)據(jù)結(jié)構(gòu),而是通過Xcode提供的圖形工具構(gòu)造一份代表數(shù)據(jù)模型的圖表启盛。

CoreFoundation.framework

? ?是一組C語言接口蹦掐,它們?yōu)閕OS應(yīng)用程序提供基本數(shù)據(jù)管理和服務(wù)功能。

Foundation.framework

Foundation框架提供Objective-C接口僵闯。如果您將Foundation對象和Core Foundation類型摻雜使用卧抗,則可利用兩個框架之間的 “toll-free bridging”。所謂的Toll-free bridging是說您可以在某個框架的方法或函數(shù)同時使用Core Foundatio和Foundation 框架中的某些類型棍厂。很多數(shù)據(jù)類型支持這一特性颗味,其中包括群體和字符串?dāng)?shù)據(jù)類型超陆。每個框架的類和類型描述都會對某個對象是否為 toll-free bridged牺弹,應(yīng)和什么對象橋接進(jìn)行說明。

Core Location.framework

可用于定位某個設(shè)備當(dāng)前經(jīng)緯度时呀。它可以利用設(shè)備具備的硬件张漂,通過附近的GPS、蜂窩基站或者WiFi信號等信息計算用戶方位谨娜。Maps應(yīng)用程序就是利用此功能在地圖上顯示用戶當(dāng)前位置航攒。您可以將此技術(shù)結(jié)合到應(yīng)用程序,以此向用戶提供方位信息趴梢。

Core Telephony.framework

此框架為訪問具有蜂窩無線的設(shè)備上的電話信息提供接口漠畜,應(yīng)用程序可通過它獲取用戶蜂窩無線服務(wù)的提供商信息。如果應(yīng)用程序?qū)τ陔娫捄艚懈信d趣坞靶,也可以在相應(yīng)事件發(fā)生時得到通知

Event kit.framework

此框架為訪問用戶設(shè)備的日歷事件提供接口憔狞。您可以通過該框架訪問用戶日歷中現(xiàn)有事件,可以增加新事件彰阴。日歷事件可包含鬧鈴瘾敢,而且可以配置鬧鈴激活規(guī)則。目前沒有定制化視圖擴(kuò)展功能尿这,以往項目只能自己實現(xiàn)類型功能簇抵。

SystemConfiguration.framwork

可用于確定設(shè)備的網(wǎng)絡(luò)配置。您可以使用該框架判斷Wi-Fi或者蜂窩連接是否正在使用中射众,也可以用于判斷某個主機(jī)服務(wù)是否可以使用碟摆。

Mobile Core Services.framework

此框架定義統(tǒng)一類型標(biāo)識符 (UTIs)使用的底層類型。

QuickLook.framework

應(yīng)用程序可以用過該框架預(yù)覽無法直接支持查看的文件內(nèi)容叨橱。如果應(yīng)用程序從網(wǎng)絡(luò)下載文件或者需處理來源未知的文件焦履,則非常適合使用此框架拓劝。因為應(yīng)用程序只要在獲得文件后,調(diào)用框架提供的視圖控制器就可以直接在界面中顯示文件的內(nèi)容嘉裤。

StoreKit.framework

此框架為iOS應(yīng)用程序內(nèi)購買內(nèi)容或服務(wù)提供支持郑临。Store Kit 框架會處于交易過程中和財務(wù)相關(guān)的事件,包括處理用戶通過 iTunes Store賬號發(fā)出的支付請求并且向應(yīng)用程序提供交易相關(guān)信息屑宠。


Media 媒體層 上層處理與媒體相關(guān)諸如:處理圖片厢洞、視頻、音頻等相關(guān)操作典奉。

AssetsLibrary.framework

框架提供一個查詢界面躺翻,您可以通過它查找用戶照片和數(shù)據(jù)。通過使用該框架卫玖,您可以訪問Photos管理的資產(chǎn)公你,包括用戶保存的相冊以及導(dǎo)入到設(shè)備中的圖片或視頻。而且您也可以將照片或者視頻保存到用戶的相冊

AVFoundation.framework

該框架包含的Objective-C 類可用于播放音頻內(nèi)容假瞬。通過使用該框架陕靠,您可以播放聲音文件或播放內(nèi)存中的音頻數(shù)據(jù),也可以同時播放多個聲音脱茉,并對各個聲音的播放特定進(jìn)行控制

Core Audio


Core Graphic.framework?

包含Quartz 2D繪圖API接口 剪芥。Quartz 是Mac OS X系統(tǒng)使用的向量繪圖引擎,它支持基于路徑繪圖琴许、抗鋸齒渲染税肪、漸變、圖片榜田、顏色益兄、坐標(biāo)空間轉(zhuǎn)換、PDF文件的創(chuàng)建箭券、顯示和解析净捅。雖然API基于C語言,但是它使用基于對象的抽象以表示基本繪圖對象邦鲫。

Core Video.framework

該框架為Core Media提供緩存和緩存池的支持灸叼。大多數(shù)應(yīng)用程序都不應(yīng)該直接使用該框架

ImageIO.framework

該框架的接口可用于導(dǎo)入或?qū)С鰣D像數(shù)據(jù)及圖像元數(shù)據(jù)。該框架建構(gòu)于 Core Graphics數(shù)據(jù)類型和函數(shù)之上庆捺,能夠支持iOS 上所有的標(biāo)準(zhǔn)圖像類型古今。

MediaPlayer.framework

為應(yīng)用程序播放視頻和音頻內(nèi)容提供高級支持。通過該框架滔以,您就可以使用標(biāo)準(zhǔn)系統(tǒng)界面播放視頻捉腥。 iOS 3.0增加了對訪問用戶iTune庫的支持。因此你画,您可以利用該框架播放音樂曲目抵碟、播放列表桃漾、搜索歌曲并向用戶顯示媒體選取界面。

OpenAL.framework

OpenAL接口是在應(yīng)用程序中發(fā)布方位音頻的跨平臺標(biāo)準(zhǔn)拟逮。通過使用該框架撬统,您可以在游戲或者要求有方位音頻輸出的程序中實現(xiàn)高性能、高質(zhì)量的音頻敦迄。OpenAL是跨平臺的標(biāo)準(zhǔn)恋追,iOS平臺使用OpenAL編寫的代碼模塊可以移植到許多其他的平臺運行。

OpenGLES.framwork

提供的工具可用于繪制2D及3D內(nèi)容罚屋。該框架基于C語言苦囱,能夠和設(shè)備硬件緊密協(xié)作,為全屏游戲類型的應(yīng)用程序提供很高的幀速率脾猛。

QuartzCore.framework

包含Core Animation接口撕彤。Core Animation是高級動畫制作和混合技術(shù),它使用經(jīng)過優(yōu)化的渲染路徑實現(xiàn)復(fù)雜的動畫和視覺效果猛拴。它提供的高級Objective-C接口可對動畫效果進(jìn)行配置羹铅,然后在設(shè)備硬件中進(jìn)行渲染,以此來提高程序的性能漆弄。Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如UIView))睦裳,可以為多種系統(tǒng)行為提供動畫效果造锅。您也可以使用該框架中的Objective-C接口直接創(chuàng)建定制動畫

Metal.framework ?iOS8.0以后 A7 CPU架構(gòu) ?相當(dāng)強大的處理引擎撼唾,相信會逐步取代OpenGLES。

metal技術(shù)正是可以讓我們在移動端體驗主機(jī)端畫質(zhì)的引擎哥蔚。


Cocoa Touch?

包含創(chuàng)建 iOS應(yīng)用程序所需的關(guān)鍵框架倒谷。上至實現(xiàn)應(yīng)用程序可視界面,下至與高級系統(tǒng)服務(wù)交互糙箍,都需要該層技術(shù)提供底層基礎(chǔ)渤愁。在開發(fā)應(yīng)用程序的時候,請盡可能不要使用更底層的框架深夯,盡可能使用該層的框架抖格。

AddressBookUI.framework

EventKitUI.framework

iAd.framework

GameKit.framework

MapKit.framework

MessageUI.framework

UIKit.framework ? 重點介紹下UIKit.framwork,雖然無時無刻不在使用它:

UIKit.framework Objective-C編程接口為實現(xiàn)iOS應(yīng)用程序的圖形及事件驅(qū)動提供關(guān)鍵基礎(chǔ)。iOS系統(tǒng)所有程序都需要通過該框架實現(xiàn)下述核心功能:

1.應(yīng)用程序管理

2.用戶界面管理

3.圖形和窗口支持

4.多任務(wù)支持

5.處理觸摸及移動事件咕晋。

6.代表標(biāo)準(zhǔn)系統(tǒng)視圖和控件的對象

7.文本和web內(nèi)容相關(guān)操作

8.剪切雹拄、復(fù)制以及粘貼

9.使用動畫顯示用戶界面內(nèi)容

10.通過URL方式將其他應(yīng)用程序整合到系統(tǒng)

11.蘋果推送通知服務(wù)支持,請查看“蘋果推送通知服務(wù) ”

12.為殘疾用戶提供輔助功能

13.本地通知的調(diào)度和發(fā)送

14.創(chuàng)建PDF

15.使用定制輸入視圖(其行為類似系統(tǒng)鍵盤)

16.創(chuàng)建和系統(tǒng)鍵盤進(jìn)行交互的定制文本視圖

此外:UIKit還為下述和設(shè)備緊密相連的功能提供支持:

1.加速器數(shù)據(jù)

2.內(nèi)置相機(jī)(存在相機(jī)的設(shè)備)

3.用戶的圖片庫

4.設(shè)備名稱和模型信息

5.電池狀態(tài)信息

6.距離感應(yīng)器信息

7.來自綁定聽筒的遠(yuǎn)程控制信息



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掌呜,一起剝皮案震驚了整個濱河市滓玖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌质蕉,老刑警劉巖势篡,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翩肌,死亡現(xiàn)場離奇詭異,居然都是意外死亡禁悠,警方通過查閱死者的電腦和手機(jī)念祭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碍侦,“玉大人棒卷,你說我怎么就攤上這事∽8郑” “怎么了比规?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拦英。 經(jīng)常有香客問我蜒什,道長,這世上最難降的妖魔是什么疤估? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任灾常,我火速辦了婚禮,結(jié)果婚禮上铃拇,老公的妹妹穿的比我還像新娘钞瀑。我一直安慰自己,他們只是感情好慷荔,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布雕什。 她就那樣靜靜地躺著,像睡著了一般显晶。 火紅的嫁衣襯著肌膚如雪贷岸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天磷雇,我揣著相機(jī)與錄音偿警,去河邊找鬼。 笑死唯笙,一個胖子當(dāng)著我的面吹牛螟蒸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播崩掘,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼七嫌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呢堰?” 一聲冷哼從身側(cè)響起抄瑟,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后皮假,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋拟,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年惹资,在試婚紗的時候發(fā)現(xiàn)自己被綠了贺纲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡褪测,死狀恐怖猴誊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侮措,我是刑警寧澤懈叹,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站分扎,受9級特大地震影響澄成,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畏吓,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一墨状、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧菲饼,春花似錦肾砂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肛根,卻和暖如春辫塌,著一層夾襖步出監(jiān)牢的瞬間漏策,已是汗流浹背派哲。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掺喻,地道東北人芭届。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像感耙,于是被迫代替她去往敵國和親褂乍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 在iOS中框架是一個目錄即硼,包含了共享資源庫逃片,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像只酥、聲音文件等其他資源褥实。共...
    wo不懂閱讀 1,411評論 3 3
  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個目錄呀狼,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件损离,...
    李小六_閱讀 3,598評論 2 24
  • 在iOS中框架是一個目錄哥艇,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件僻澎,以及圖像貌踏、聲音文件等其他資源。共...
    ch123閱讀 1,764評論 0 1
  • 《美則傳奇》是一本關(guān)于創(chuàng)業(yè)的書窟勃,但書中的觀點不僅僅是對創(chuàng)業(yè)者有用祖乳,作為一名媽媽,我發(fā)現(xiàn)秉氧,書中的理論也可以運用到育兒...
    花臉喵閱讀 142評論 2 3
  • 打卡第7天 這幾天通過加強的注意力管理凡资,效率有了很大提升。 我是一個比較喜歡一心多用的人谬运,比如跑步隙赁,我會在跑步同時...
    心理咨詢師余煜明閱讀 221評論 0 0