上次我們介紹了Android作業系統,今天我們繼續花5分鐘來對iOS作業系統進行一個簡單的了解吧。
iOS簡介iOS是由蘋果公司為iPhone開發的作業系統。它主要是給iPhone、iPodtouch、iPad以及AppleTV使用。就像其基於的MacOSX作業系統一樣,它也是以Darwin為基礎的。原本這個系統名為iPhone OS,直到2010年6月7日WWDC大會上宣佈改名為iOS。
Darwin是基於Unix核心開發出來的,而Linux也是參考Unix核心開發出來的開源系統,所以實際上Unix和Linux相愛相殺,又不太相同又很相似,像是一對親戚。
iOS發展iOS作業系統基本上從2007年誕生以來每年更新一個大版本,每個大版本會相應更新一些新的特性和功能,具體彙總如下
iOS發展歷程
iOS系統架構
iOS的系統架構和Android一樣,也分了四個模組,從底層到上層分別為Core OS、Core Services、Media、Cocoa Touch,而且四個模組跟Android的四個模組所實現的功能幾乎是一一對應的,感興趣的讀者可以翻出Android系統架構的四個模組進行比對
iOS架構
Core OS
核心系統層提供為上層結構提供最基礎的服務如作業系統核心服務、本地認證、安全、加速等。可以認為是Darwin的系統核心。
Core Services核心服務層為程式提供基礎的系統服務例如網路訪問、瀏覽器引擎、定位、檔案訪問、資料庫訪問等,主要包含以下框架
CFNetwork(網路訪問)
Core Data(資料儲存)
Core Location(定位功能)
Core Motion(重力加速度,陀螺儀)
Foundation(基礎功能如NSString)
Webkit(瀏覽器引擎)
JavaScript(JavaScript引擎)
Media媒體層主要提供影象引擎、音訊引擎、視訊引擎框架
影象引擎(Core Graphics、Core Image、Core Animation、OpenGLES)
音訊引擎 (Core Audio、 AV Foundation、OpenAL)
視訊引擎(AV Foundation、Core Media)
Cocoa Touch可觸控層主要提供使用者互動相關的服務如介面控制元件、事件管理、通知中心、地圖,包含以下框架
UIKit(介面相關)
EventKit(日曆事件提醒等)
Notification Center(通知中心)
MapKit(地圖顯示)
Address Book(聯絡人)
iAd(廣告)
Message UI(郵件與SMS顯示)
PushKit(iOS8新push機制)
iOS為何更流暢
我們在日常使用中經常會聽到說iOS的使用比Android要流暢,那麼為什麼我們會有這種感知呢,實際上這根iOS和Android的工作機制不同有關,下面我們來分析下為何iOS會顯得更流暢
1、響應優先順序不同
iOS:Touch—Media—Service—Core,最先響應螢幕。
Android:Application—Framework—Library—Kernal,和顯示相關的影象處理屬於Library,觸控式螢幕幕之後會先啟用應用、框架然後才是螢幕。
也就是說iOS對於螢幕觸控的反饋優先響應螢幕,所以會給使用者造成iOS反應快的感知,比如同一個應用iOS和Android都是2秒開啟的話,iOS會先快速開啟APP然後2秒鐘後加載完成,而Android則是先2秒鐘載入完成後才顯示開啟APP。雖然總耗時相同,但給使用者的感知會是iOS更快。
2、硬體工作配置不同
iOS:基於GPU硬體加速,可以不完全藉助CPU或者程式本身,而是通過GPU進行渲染達到更流暢的操控表現。
Android:圖形特效大多都要靠程式本身進行加速和渲染,並嚴重依賴CPU運算和操作,加大了處理器的負荷,從而出現卡頓的問題。(雖然Android高版本系統預設開啟硬體加速,但無法像iOS系統一樣做到系統層級的加速全部圖形特效。
3、開發機制不同
iOS:Objective-C或Swift,編譯器為gcc,不要虛虛擬機器在中間插手,執行效率高。
Android:通過Java虛擬機器來執行,系統需要佔用大量記憶體來獲取執行速度,再加上不定期的記憶體自動回收機制,直接導致了卡頓現象的出現。(事實上在介紹Android的文章裡我們提到過Android換位ART模式後避免了虛擬機器帶來的弊端,啟動速度已經接近於iOS)
4、系統設計不同
iOS:封閉性,所有APP執行物件比較單一,App Store。
Android:終端物件引數多變,各Android廠商的應用市場,APP管理混亂。
5、訊息推送機制不同
iOS:APNs統一管理,應用不會在後臺佔用記憶體。
Android:沒有統一管理機制,應用可以一直留在後臺,導致記憶體不足。(雖然Google有官方的GCM推送機制,但國內無法使用,所以國內更多是接入各類的第三方推送,不夠統一)
iOS的APP開發Xcode
是蘋果公司開發的一款產品,提供給開發者用來開發iOSApp的整合開發環境(IDE)。Xcode只能執行與蘋果系統,所以要想開發iOS App必須要有一臺蘋果電腦。
Objective-C擴充C的面向物件程式語言,1980年代初布萊德·考克斯(Brad Cox)在其公司Stepstone發明Objective-C。
SwiftWWDC2014所釋出的一門程式語言,用來編寫iOS應用程式,2015年06月09日,蘋果通過WWDC大會上宣佈Swift開源。這意味著可以用它來進行開發跨平臺的應用,現在Swift已經被評為最有前景的程式語言。