上次我們介紹了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的系統架構和Android一樣,也分了四個模塊,從底層到上層分別為Core OS、Core Services、Media、Cocoa Touch,而且四個模塊跟Android的四個模塊所實現的功能幾乎是一一對應的,感興趣的讀者可以翻出Android系統架構的四個模塊進行比對
- 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已經被評為最有前景的編程語言。
閱讀更多 測試開發員 的文章