天天玩手機卻不瞭解iOS操作系統?5分鐘帶你掃盲


上次我們介紹了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。

Swift

WWDC2014所發佈的一門編程語言,用來編寫iOS應用程序,2015年06月09日,蘋果通過WWDC大會上宣佈Swift開源。這意味著可以用它來進行開發跨平臺的應用,現在Swift已經被評為最有前景的編程語言。