分析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)上運(yùn)行的軟件而定義的一系列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)常涉及運(yùn)用的系統(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編寫的代碼模塊可以移植到許多其他的平臺運(yùn)行。

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)強(qiá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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS中框架是一個目錄,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像、聲音文件等其他資源。共...
    wo不懂閱讀 1,605評論 3 3
  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個目錄,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件,...
    李小六_閱讀 3,846評論 2 24
  • 在iOS中框架是一個目錄,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像、聲音文件等其他資源。共...
    ch123閱讀 1,845評論 0 1
  • 《美則傳奇》是一本關(guān)于創(chuàng)業(yè)的書,但書中的觀點不僅僅是對創(chuàng)業(yè)者有用,作為一名媽媽,我發(fā)現(xiàn),書中的理論也可以運(yùn)用到育兒...
    花臉喵閱讀 167評論 2 3
  • 打卡第7天 這幾天通過加強(qiáng)的注意力管理,效率有了很大提升。 我是一個比較喜歡一心多用的人,比如跑步,我會在跑步同時...
    心理咨詢師余煜明閱讀 271評論 0 0

友情鏈接更多精彩內(nèi)容