iOS 開發相關資訊
iOS是運行於iPhone、iPod touch以及 iPad裝置的作業系統,它管理裝置硬體並為手機本地應用程式的實現提供基礎技術。根據裝置不同,作業系統具有不同的系統應用程式,例如Phone、Mail以及Safari,這些應用程式可以為使用者提供標準系統服務。
iPhone SDK包含開發、安裝及運行本地應用程式所需的工具和介面。本地應用程式使用iOS系統架構和Objective-C語言進行構建,並且直接運行於iOS裝置。它與web應用程式不同,一是它位於所安裝的裝置上,二是不管是否有網路連接它都能運行。可以說本地應用程式和其他系統應用程式具有相同地位。本地應用程式和使用者資料都可以通過iTunes同步到使用者電腦。
iOS 架構
iOS架構和Mac OS的基礎架構相似。站在進階層次來看,iOS 扮演底層硬體和應用程式(顯示在螢幕上的應用程式)的中介,如圖
1-1所示。您建立的應用程式不能直接存取硬體,而需要和系統介面進行互動。系統介面轉而又去和適當的驅動打交道。這樣的抽象可以防止您的應用程式改變底層硬體。
圖 1-1 應用程式位於iOS上層
請注意: 雖然應用程式通常會和底層硬體隔離, 但是應用程式代碼仍需考慮裝置之間的某些差異。舉個例子,iPad和iPod touch不能開啟包含電話號碼的URL但是iPhone則可以。
iOS實現可以看作是多個層的集合("Game Kit 架構"含有對這些層的介紹),底層為所有應用程式提供基礎服務,高層則包含一些複雜巧妙的服務和技術。
圖 1-2 iOS的層
在編寫代碼的時候,應該儘可能地使用高層架構,而不要使用底層架構。高層架構為底層構造提供物件導向的抽象。這些抽象可以減少需編寫的程式碼數,同時還對諸如socket和線程這些複雜功能進行封裝,從而讓編寫代碼變得更加容易。雖說高層架構是對底層構造進行抽象,但是它並沒有把底層技術屏蔽起來。如果高層架構沒有為底層架構的某些功能提供介面,開發人員可以直接使用底層架構。
本文檔後續章節將對每一層所包含的技術和架構進行描述。
iPhone SDK 包含哪些東西?
在使用Intel晶片的Macintosh電腦開發iOS應用程式所需的全部介面、工具以及資源全都包含於iPhone SDK。
蘋果公司將大部分系統介面發布在架構這種特殊的資料包。一個架構就是一個目錄,它包含一個動態共用程式庫以及使用這個庫所需的資源(例如標頭檔、映像以及輔助應用程式等)。如果要使用某個架構,則需要將其連結到應用程式工程,這一點和使用其他共用庫相似。另外,您還需要告知開發工具何處可以找到架構標頭檔以及其他資源。
除了使用架構,蘋果公司還通過標準共用庫的形式來發布某些技術。 由於iOS以UNIX為基礎,作業系統底層的許多技術都源自開源技術,這些技術的許多介面可以從標準庫和介面目錄訪問。
SDK中還包含下述重要組件:
Xcode工具 -提供iOS應用程式開發工具,包括如下關鍵應用程式:
Xcode -是一個整合式開發環境,它負責管理應用程式工程。您可以通過它來編輯、編譯、運行以及調試代碼。Xcode還整合了許多其他工具,它是開發過程中使用到的主要應用程式。
Interface Builder -以可視化方式組裝使用者介面的工具。通過Interface Builder建立出來的介面對象將會儲存到某種特定格式的資源檔,並且在運行時載入到應用程式。
Instruments - 運行時效能分析和調試工具。您可以通過 Instruments 收集應用程式運行時的行為資訊,並利用這些資訊來確認可能存在的問題。
iPhone模擬器 -是Mac OS X平台應用程式,它對iOS技術棧進行類比,以便於您可以在基於Intel的Macintosh電腦上測試iOS應用程式。
iOS參考庫- SDK預設包含iOS的參考文檔。另外,如果文件庫有更新,則更新會被自動下載到本地。通過選擇Help > Developer Documentation就可以看到參考庫。
SDK提供編寫應用程式所需的軟體,而且Xcode和Instruments允許您直接與綁定裝置進行互動,在目標硬體運行並調試代碼。如果您需要在實際裝置上開發,請加入蘋果公司的收費iPhone開發人員計劃,並將裝置配置成開發用途。如需進一步瞭解iPhone開發人員計劃,請訪問http://developer.apple.com/iphone/program/頁面。
如果您需要瞭解如何安裝iPhone SDK以及如何使用iPhone SDK開發iOS應用程式,則請參考iOS開發指南。如果進一步瞭解iOS的架構,並且希望瞭解何處可以找到底層的系統庫,則請參考“iOS架構”。
您可以在 iOS 建立什麼應用程式?
使用者可以在裝置上運行兩種不同類型的定製應用程式:Web應用程式和本地應用程式。Web應用程式將HTML、層疊樣式表以及JavaScript代碼結合在一起,以此來實現具有互動性的應用程式,這些應用程式存在於web伺服器,通過網路傳送到使用者裝置上,並運行於Safari瀏覽器。而本地應用程式則是直接安裝在裝置上,無需配備網路連接就可以運行。
iPhone SDK僅能用於建立顯示於裝置Home屏的本地應用程式,它不支援建立其他諸如驅動、架構、動態庫等類型的代碼。如果您希望將某個架構或者動態庫整合到應用程式,則應在鏈編工程的時候靜態地將其連結到應用程式執行檔案。
如何使用參考庫?
iOS參考庫包含各種文檔、範例代碼以及教程,這些材料可為編寫應用程式提供協助。不過參考庫包含數千頁的文檔,上至起步介紹,下至API參考文檔盡皆涵蓋其中。因此,明白如何找到需要的資訊是開發過程的重要步驟。參考庫使用幾種數種技術來組織內容,以使其更易於瀏覽。
您可以從蘋果開發人員網站訪問iOS參考庫,也可以從Xcode訪問。 只要在Xcode中選擇 協助>開發人員文檔,就可以把XCode的文件視窗顯示在螢幕上。此視窗是訪問iOS開發資訊的核心,您可以在其中瀏覽文檔並執行搜尋,還可以為稍後可能閱讀的文檔添加書籤。各個文檔早已按其內容進行歸類,這樣可為更新提供便利,也可以把搜尋的範圍精確至相關的文檔。
在安裝 iPhone SDK的時候,Xcode 會自動為您安裝包含iOS參考庫的文檔集。(XCode也會自動為您下載文檔更新,不過您可以在喜好設定中取消此行為。)iOS參考庫包含非常多的資訊。因而,對其排版設計稍作瞭解意義重大。圖
1-3顯示的是Xcode文件視窗中參考庫的主。頁面頂部的工具列包含搜尋方塊和按鍵,可用於導航至其他已安裝的文檔集或是已建立的書籤。 您可以按主題、架構或者其他您正在尋找的資源類型瀏覽文檔,也可以使用過濾器來控制文檔列表,減少顯示的文檔集。
圖 1-3 iOS參考庫
重要: iOS參考庫的內容有可能不是最新的,您可以從iPhone開發中心(http://www.apple.com.cn/developer/iphone)訪問最新的文檔、發布紀要、技術紀要、技術,
技術Q&A以及範例代碼。所有的文檔都有HTML格式版本,大部分有PDF格式版本。
參考庫提供海量資訊,在編寫代碼時翻查這些資訊非常麻煩。為了協助您快速找到某些特定資訊,XCode為您提供如圖
1-4所示的Quick Help視窗。該視窗向您顯示和某個指定符號相關的資訊,包括它的文法、描述以及可以使用該符號的SDK版本。另外,該視窗還顯示該符號的相關文檔以及範例代碼。點擊視窗中的連結就可以進入到參考庫中相應的資源。如果希望顯示Quick Help視窗,請按住Option鍵然後再雙擊Xcode編輯視窗中的某個符號。
圖 1-4 Xcode中的Quick help視窗
如果需要進一步瞭解文件視窗和Quick Help視窗,請參考Xcode
Workspace指南。