標籤:dsp span push 動畫效果 點對點 div 按鈕組 recording 核心
整理自互連網,感謝原文作者!
1.iOS基於UNIX系統,因此從系統的穩定性上來說它要比其他動作系統的產品好很多
2.iOS的系統架構分為四層,由上到下一次為:可觸摸層(Cocoa Touch layer)、媒體層(Media layer)、核心服務層(Core Services layer)、核心作業系統層(Core OS layer)
(1)觸摸層:為應用程式開發提供了各種常用的架構並且大部分架構與介面有關,本質上來說它負責使用者在iOS裝置上的觸摸互動操作。它包括以下這些組件:
Multi-Touch Events Core Motion CameraView Hierarchy Localization AlertsWeb Views Image Picker Multi-Touch Controls
(補充new:可觸摸層主要提供使用者互動相關的服務如介面控制項、事件管理、通知中樞、地圖,包含
- UIKit(介面相關)
- EventKit(日曆事件提醒等)
- Notification Center(通知中樞)
- MapKit(地圖顯示)
- Address Book(連絡人)
- iAd(廣告)
- Message UI(郵件與SMS顯示)
- PushKit(iOS8新push機制)
)
(2)媒體層:通過它我們可以在應用程式中使用各種媒體檔案,進行音頻與視頻的錄製,圖形的繪製,以及製作基礎的動畫效果。它包括以下這些組件:
Core Audio OpenGL Audio MixingAudio Recording Video Playback JPG,PNG,TIFFPDF Quartz Core Animation OpenGL ES
(補充new:媒體層主要提供映像引擎、音頻引擎、視頻引擎架構。
- 映像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
- 音頻引擎 (Core Audio、 AV Foundation、OpenAL)
- 視頻引擎(AV Foundation、Core Media)
)
(3)核心服務層:我們可以通過它來訪問iOS的一些服務。它包括以下這些組件:
Collections Address Book NetworkingFile Access SQLite Core LocationNet Services Threading PreferencesURL Utilities
(補充new:核心服務層為程式提供基礎的系統服務例如網路訪問、瀏覽器引擎、定位、檔案訪問、資料庫訪問等,主要包含以下架構:
- CFNetwork(網路訪問)
- Core Data(資料存放區)
- Core Location(定位功能)
- Core Motion(重力加速度,陀螺儀)
- Foundation(基礎功能如NSString)
- Webkit(瀏覽器引擎)
- JavaScript(JavaScript引擎)
)
(4)核心作業系統層包括:記憶體管理、檔案系統、電源管理以及一些其他的作業系統任務。它可以直接和硬體裝置進行互動。核心作業系統層包括以下這些組件:
OS X Kernel Mach 3.0 BSDSockets Power Mgmt File SystemKeychain Certificates SecurityBonjour
(補充new:核心系統層提供為上層結構提供最基礎的服務如作業系統核心服務、本地認證、安全、加速等。
- 作業系統核心服務(BSD sockets、I/O訪問、記憶體申請、檔案系統、數學計算等)
- 本地認證(指紋識別驗證等)
- 安全(提供管理憑證、公開金鑰、密鑰等的介面)
- 加速 (執行數學、大數字以及DSP運算,這些介面iOS裝置硬體相匹配)
)
3.Cocoa Touch簡介
(1)在最上層Cocoa Touch層中的很多技術都是基於Objective-C語言的。Objective-C語言為iOS提供了集合、檔案管理、網路操作等支援。比如UIKit架構,它為應用程式提供了各種可視化組件,比如像視窗(Window)、視圖(View)和按鈕組件(UIButton)。Cocoa Touch層中的其他架構,對我們在應用程式中的開發來說也是非常有用的,如訪問使用者通訊錄功能架構、擷取照片資訊功能的架構、負責加速感應器和三維陀螺儀等硬體支援的架構。
4.Framework--應用程式架構
什麼是架構?本質上來說它是協助我們完成各種特定功能的軟體庫。
我們編寫的應用程式項目,都是從Cocoa Touch層開始的,具體來說就是從UIKit Framework開始的。當在編寫程式的過程中需要用到一些特殊功能的時候,我們應該從架構的最頂端技術開始尋找相應的架構,只有在上層結構無法解決時,才能使用其下層的技術。其實,頂層的架構已經涵蓋了我們絕大多數需要的功能。
下列表格列出了一些常用的iOS SDK架構。
常用的iOS SDK架構:
架構名稱 |
功 能 |
AddressBook.framework |
提供訪問儲存核心資料庫中使用者連絡人資訊的功能 |
AddressBookUI.framework |
提供一個使用者介面,用於顯示儲存在地址簿中的連絡人資訊 |
AudioToolbox.framework |
提供音頻錄製和回放的底層API,同時也負責管理音頻硬體 |
AudioUnit.framework |
提供一個介面,讓我們的應用程式可以對音頻進行處理 |
AVFoundation.framework |
提供音頻錄製和回放的底層API,同時也負責管理音頻硬體 |
CFNetwork.framework |
訪問和配置網路,像HTTP、FTP和Bonjour Services |
CoreFoundation.framework |
提供抽象的常用資料類型,如 Unicode strings、XML、URL等 |
CoreGraphics.framework |
提供2D繪製的基於C的API |
續表:
架構名稱 |
功 能 |
CoreLocation.framework |
使用GPS和Wi-Fi擷取位置資訊 |
Foundation.framework |
提供Object-C的基礎類(像NSObject)、 基礎資料型別 (Elementary Data Type)和作業系統服務等 |
GameKit.framework |
為遊戲提供網路功能;點對點互聯和遊戲中的語音交流 |
MapKit.framework |
為應用程式提供內嵌地圖的介面 |
MediaPlayer.framework |
提供播放視頻和音訊功能 |
MessageUI.framework |
提供視圖控制介面用以處理E-mail和簡訊 |
OpenGLES.framework |
提供簡潔而高效的繪製2D和3D圖形的OpenGL API子集 |
QuartzCore.framework |
提供動畫特效以及通過硬體進行渲染的能力 |
StoreKit.framework |
為應用程式提供在程式運行中消費的支援 |
SystemConfiguration.framework |
檢測當前網路是否可用和硬體裝置狀態的能力 |
UIKit.framework |
建立和管理應用程式的使用者介面 |
iOS 系統架構 && 常用 framework