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


天天玩手機卻不瞭解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操作系統?5分鐘帶你掃盲

iOS發展歷程


iOS系統架構

iOS的系統架構和Android一樣,也分了四個模塊,從底層到上層分別為Core OS、Core Services、Media、Cocoa Touch,而且四個模塊跟Android的四個模塊所實現的功能幾乎是一一對應的,感興趣的讀者可以翻出Android系統架構的四個模塊進行比對

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

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已經被評為最有前景的編程語言。


分享到:


相關文章: