分析ios框架

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


Core OS: 底層處理,提供上層支撐(其中包括內核環境、驅動及操作系統底層UNIX 接口)。

?由FreeBSD和Mach所改寫的Darwin, 是開源、符合POSIX標準的一個Unix核心。這一層包含或者說是提供了整個iPhone OS的一些基礎功能,比如:硬件驅動, 內存管理,程序管理,線程管理(POSIX),文件系統,網絡(BSD Socket),以及標準輸入輸出等等,所有這些功能都會通過C語言的API來提供。

iPhone OS提供了許多訪問操作系統底層功能的接口集,并通過LibSystem庫萊訪問這些功能。如:線程、網絡(sockets)、文件系統訪問、標準I/O、Bonjour和DNS服務、內存分配、數學計算、區域信息。

介紹下POSIX、FreeBSD通往開發跨平臺應用,有必要需要了解點背景:

POSIX表示可移植操作系統接口(Portable Operating System Interface ,縮寫為 POSIX ),POSIX標準定義了操作系統應該為應用程序提供的接口標準,是IEEE為要在各種UNIX操作系統上運行的軟件而定義的一系列API標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。

POSIX標準意在期望獲得源代碼級別的軟件可移植性。換句話說,為一個POSIX兼容的操作系統編寫的程序,應該可以在任何其它的POSIX操作系統(即使是來自另一個廠商)上編譯執行。


FreeBSD是一種類UNIX操作系統,是由經過BSD、386BSD和4.4BSD發展而來的Unix的一個重要分支。FreeBSD 為不同架構的計算機系統提供了不同程度的支持。并且一些原來BSD UNIX的開發者后來轉到FreeBSD的開發,使得FreeBSD在內部結構和系統API上和UNIX有很大的兼容性。由于FreeBSD寬松的法律條款,其代碼被好多其他系統借鑒包括蘋果公司的MacOS X,正因此由于MacOS X的UNIX兼容性,使得Mac OS X獲得了UNIX商標認證。

Accessory.framework 、External Accessory.framework 、Security.framework


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

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

經常涉及運用的系統庫,以及簡單介紹:

AddressBook.framework

?? 支持編程訪問存儲于用戶設備中的聯系人信息。如果應用程序使用到聯系人信息,則可通過該框架訪問并修改用戶聯系人數據庫的記錄。

CFNetwork.framework

提供一組高性能基于C語言的接口,它們為使用網絡協議提供面向對象抽象。

1.對協議棧進行更精細的控制,而且可以使用諸如 BSD socket這類底層結構。

2.簡化FTP、HTTP服務器通訊、DNS主機解析任務

應用場景包括

1.使用SSL或TLS創建加密連接

2.使用BSD sockets

3.解析DNS主機

4.使用HTTP,校驗HTTP以及HTTPS服務器。

5.使用FTP服務器

6.發布、解析并瀏覽 Bonjour服務。

Core Data.framework

Core Data框架是一種管理模型-視圖-控制器應用程序數據模型的技術,它適用于數據模型已經高度結構化的應用程序。通過此框架,您再也不需要通過編程定義數據結構,而是通過Xcode提供的圖形工具構造一份代表數據模型的圖表。

CoreFoundation.framework

? ?是一組C語言接口,它們為iOS應用程序提供基本數據管理和服務功能。

Foundation.framework

Foundation框架提供Objective-C接口。如果您將Foundation對象和Core Foundation類型摻雜使用,則可利用兩個框架之間的 “toll-free bridging”。所謂的Toll-free bridging是說您可以在某個框架的方法或函數同時使用Core Foundatio和Foundation 框架中的某些類型。很多數據類型支持這一特性,其中包括群體和字符串數據類型。每個框架的類和類型描述都會對某個對象是否為 toll-free bridged,應和什么對象橋接進行說明。

Core Location.framework

可用于定位某個設備當前經緯度。它可以利用設備具備的硬件,通過附近的GPS、蜂窩基站或者WiFi信號等信息計算用戶方位。Maps應用程序就是利用此功能在地圖上顯示用戶當前位置。您可以將此技術結合到應用程序,以此向用戶提供方位信息。

Core Telephony.framework

此框架為訪問具有蜂窩無線的設備上的電話信息提供接口,應用程序可通過它獲取用戶蜂窩無線服務的提供商信息。如果應用程序對于電話呼叫感興趣,也可以在相應事件發生時得到通知

Event kit.framework

此框架為訪問用戶設備的日歷事件提供接口。您可以通過該框架訪問用戶日歷中現有事件,可以增加新事件。日歷事件可包含鬧鈴,而且可以配置鬧鈴激活規則。目前沒有定制化視圖擴展功能,以往項目只能自己實現類型功能。

SystemConfiguration.framwork

可用于確定設備的網絡配置。您可以使用該框架判斷Wi-Fi或者蜂窩連接是否正在使用中,也可以用于判斷某個主機服務是否可以使用。

Mobile Core Services.framework

此框架定義統一類型標識符 (UTIs)使用的底層類型。

QuickLook.framework

應用程序可以用過該框架預覽無法直接支持查看的文件內容。如果應用程序從網絡下載文件或者需處理來源未知的文件,則非常適合使用此框架。因為應用程序只要在獲得文件后,調用框架提供的視圖控制器就可以直接在界面中顯示文件的內容。

StoreKit.framework

此框架為iOS應用程序內購買內容或服務提供支持。Store Kit 框架會處于交易過程中和財務相關的事件,包括處理用戶通過 iTunes Store賬號發出的支付請求并且向應用程序提供交易相關信息。


Media 媒體層 上層處理與媒體相關諸如:處理圖片、視頻、音頻等相關操作。

AssetsLibrary.framework

框架提供一個查詢界面,您可以通過它查找用戶照片和數據。通過使用該框架,您可以訪問Photos管理的資產,包括用戶保存的相冊以及導入到設備中的圖片或視頻。而且您也可以將照片或者視頻保存到用戶的相冊

AVFoundation.framework

該框架包含的Objective-C 類可用于播放音頻內容。通過使用該框架,您可以播放聲音文件或播放內存中的音頻數據,也可以同時播放多個聲音,并對各個聲音的播放特定進行控制

Core Audio


Core Graphic.framework?

包含Quartz 2D繪圖API接口 。Quartz 是Mac OS X系統使用的向量繪圖引擎,它支持基于路徑繪圖、抗鋸齒渲染、漸變、圖片、顏色、坐標空間轉換、PDF文件的創建、顯示和解析。雖然API基于C語言,但是它使用基于對象的抽象以表示基本繪圖對象。

Core Video.framework

該框架為Core Media提供緩存和緩存池的支持。大多數應用程序都不應該直接使用該框架

ImageIO.framework

該框架的接口可用于導入或導出圖像數據及圖像元數據。該框架建構于 Core Graphics數據類型和函數之上,能夠支持iOS 上所有的標準圖像類型。

MediaPlayer.framework

為應用程序播放視頻和音頻內容提供高級支持。通過該框架,您就可以使用標準系統界面播放視頻。 iOS 3.0增加了對訪問用戶iTune庫的支持。因此,您可以利用該框架播放音樂曲目、播放列表、搜索歌曲并向用戶顯示媒體選取界面。

OpenAL.framework

OpenAL接口是在應用程序中發布方位音頻的跨平臺標準。通過使用該框架,您可以在游戲或者要求有方位音頻輸出的程序中實現高性能、高質量的音頻。OpenAL是跨平臺的標準,iOS平臺使用OpenAL編寫的代碼模塊可以移植到許多其他的平臺運行。

OpenGLES.framwork

提供的工具可用于繪制2D及3D內容。該框架基于C語言,能夠和設備硬件緊密協作,為全屏游戲類型的應用程序提供很高的幀速率。

QuartzCore.framework

包含Core Animation接口。Core Animation是高級動畫制作和混合技術,它使用經過優化的渲染路徑實現復雜的動畫和視覺效果。它提供的高級Objective-C接口可對動畫效果進行配置,然后在設備硬件中進行渲染,以此來提高程序的性能。Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如UIView)),可以為多種系統行為提供動畫效果。您也可以使用該框架中的Objective-C接口直接創建定制動畫

Metal.framework ?iOS8.0以后 A7 CPU架構 ?相當強大的處理引擎,相信會逐步取代OpenGLES。

metal技術正是可以讓我們在移動端體驗主機端畫質的引擎。


Cocoa Touch?

包含創建 iOS應用程序所需的關鍵框架。上至實現應用程序可視界面,下至與高級系統服務交互,都需要該層技術提供底層基礎。在開發應用程序的時候,請盡可能不要使用更底層的框架,盡可能使用該層的框架。

AddressBookUI.framework

EventKitUI.framework

iAd.framework

GameKit.framework

MapKit.framework

MessageUI.framework

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

UIKit.framework Objective-C編程接口為實現iOS應用程序的圖形及事件驅動提供關鍵基礎。iOS系統所有程序都需要通過該框架實現下述核心功能:

1.應用程序管理

2.用戶界面管理

3.圖形和窗口支持

4.多任務支持

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

6.代表標準系統視圖和控件的對象

7.文本和web內容相關操作

8.剪切、復制以及粘貼

9.使用動畫顯示用戶界面內容

10.通過URL方式將其他應用程序整合到系統

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

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

13.本地通知的調度和發送

14.創建PDF

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

16.創建和系統鍵盤進行交互的定制文本視圖

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

1.加速器數據

2.內置相機(存在相機的設備)

3.用戶的圖片庫

4.設備名稱和模型信息

5.電池狀態信息

6.距離感應器信息

7.來自綁定聽筒的遠程控制信息



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容

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