淺談手機系統(tǒng)——iOS
我們知道,iOS的原始名稱是iPhone OS,它是一種類似于UNIX的商業(yè)操作系統(tǒng)。
而大家也都常說iOS是一個封閉式的系統(tǒng),為什么這么說呢?因為iOS的系統(tǒng)并未開源,即閉源。
什么是開源?
開源,(Open Source)全稱為開放源代碼。開源系統(tǒng)即開放源代碼的系統(tǒng)。開放源代碼意味著大家都可以在其基礎(chǔ)上進行修改操作。開源系統(tǒng)則意味著大家都可以修改這個系統(tǒng)。
開源并不代表著可以不重視版權(quán),用戶在使用開源產(chǎn)品時,不但需要說明產(chǎn)品來自開源軟件和注明源代碼編寫者姓名,而且還應(yīng)把所修改產(chǎn)品返回給開源軟件,否則所修改產(chǎn)品就可視為侵權(quán)。
正因為iOS是閉源操作系統(tǒng),所以大家不能去修改iOS這個系統(tǒng),也就導(dǎo)致了現(xiàn)在iOS就是iOS,并沒有什么基于iOS定制的第三方操作系統(tǒng)。
但有的用戶通過一些手段就可以修改系統(tǒng)文件,達到修改主題等等自己的目的,這個方法類似于Android中的root,在iOS中,我們稱之為越獄。
什么是越獄?
iOS 越獄(iOS Jailbreaking),是用于獲取蘋果公司便攜裝置操作系統(tǒng)iOS最高權(quán)限的一種技術(shù)手段,用戶使用這種技術(shù)及軟件可以獲取到 iOS 的最高權(quán)限,越獄軟件適用于iPhone、iPod touch、iPad及 Apple TV 第二代上的 iOS 系統(tǒng)。用戶越獄完畢之后,可以透過如Cydia這一類包管理器,來安裝 AppStore 以外的擴展軟件及外觀主題,或是完成越獄前不可能完成的動作,如安裝Linux系統(tǒng)。
不完美越獄,是對 iOS 系統(tǒng)上越獄效果的一個描述。英文原文為 Tethered jailbreak,意為被"栓住的越獄"。不完美越獄具體表現(xiàn)是經(jīng)過這種類型越獄的設(shè)備無法正常重啟手機(失去越獄,部分系統(tǒng)功能失效,甚至白蘋果)。
如果要恢復(fù)越獄需連接電腦進入DFU并運行之前使用的越獄工具進行引導(dǎo),以使設(shè)備正常重啟并開機。不完美越獄后可以安裝Semitether插件來避免不完美越獄在緊急情況重啟也能正常開機。不完美越獄往往依靠的是iOS設(shè)備的硬件漏洞。
說了這么多,iOS給大家的印象就是封閉的操作系統(tǒng),可為什么有很多人喜歡用呢?因為iOS用起來非常流暢、絲滑。說到這,咱們不得不詳細說說iOS。
iOS發(fā)展iOS操作系統(tǒng)基本上從2007年誕生以來每年更新一個大版本,每個大版本會相應(yīng)更新一些新的特性和功能,具體匯總?cè)缦?
iOS系統(tǒng)架構(gòu)iOS的系統(tǒng)架構(gòu)和Android一樣,也分了四個模塊,從底層到上層分別為Core OS、Core Services、Media、Cocoa Touch,而且四個模塊跟Android的四個模塊所實現(xiàn)的功能幾乎是一一對應(yīng)的。
Core OS
核心系統(tǒng)層提供為上層結(jié)構(gòu)提供最基礎(chǔ)的服務(wù)如操作系統(tǒng)內(nèi)核服務(wù)、本地認證、安全、加速等。可以認為是Darwin的系統(tǒng)內(nèi)核。
Core Services
核心服務(wù)層為程序提供基礎(chǔ)的系統(tǒng)服務(wù)例如網(wǎng)絡(luò)訪問、瀏覽器引擎、定位、文件訪問、數(shù)據(jù)庫訪問等,主要包含以下框架
CFNetwork(網(wǎng)絡(luò)訪問)
Core Data(數(shù)據(jù)存儲)
Core Location(定位功能)
Core Motion(重力加速度,陀螺儀)
Foundation(基礎(chǔ)功能如NSString)
Webkit(瀏覽器引擎)
JavaScript(JavaScript引擎)
Media媒體層主要提供圖像引擎、音頻引擎、
視頻引擎框架圖像引擎(Core Graphics、Core Image、Core Animation、OpenGLES)
音頻引擎 (Core Audio、 AV Foundation、OpenAL)
視頻引擎(AV Foundation、Core Media)
Cocoa Touch
可觸摸層主要提供用戶交互相關(guān)的服務(wù)如界面控件、事件管理、通知中心、地圖,包含以下框架
UIKit(界面相關(guān))
EventKit(日歷事件提醒等)
Notification Center(通知中心)
MapKit(地圖顯示)
Address Book(聯(lián)系人)
iAd(廣告)
Message UI(郵件與SMS顯示)
PushKit(iOS8新push機制)
iOS為何更流暢
我們在日常使用中經(jīng)常會聽到說iOS的使用比Android要流暢,那么為什么我們會有這種感知呢,實際上這根iOS和Android的工作機制不同有關(guān),下面我們來分析下為何iOS會顯得更流暢
1、響應(yīng)優(yōu)先級不同
iOS:Touch—Media—Service—Core,最先響應(yīng)屏幕。
Android:Application—Framework—Library—Kernal,和顯示相關(guān)的圖像處理屬于Library,觸摸屏幕之后會先激活應(yīng)用、框架然后才是屏幕。
也就是說iOS對于屏幕觸控的反饋優(yōu)先響應(yīng)屏幕,所以會給使用者造成iOS反應(yīng)快的感知,比如同一個應(yīng)用iOS和Android都是2秒打開的話,iOS會先快速打開APP然后2秒鐘后加載完成,而Android則是先2秒鐘加載完成后才顯示打開APP。雖然總耗時相同,但給用戶的感知會是iOS更快。
2、硬件工作配置不同
iOS:基于GPU硬件加速,可以不完全借助CPU或者程序本身,而是通過GPU進行渲染達到更流暢的操控表現(xiàn)。
Android:圖形特效大多都要靠程序本身進行加速和渲染,并嚴重依賴CPU運算和操作,加大了處理器的負荷,從而出現(xiàn)卡頓的問題。(雖然Android高版本系統(tǒng)默認開啟硬件加速,但無法像iOS系統(tǒng)一樣做到系統(tǒng)層級的加速全部圖形特效。
3、開發(fā)機制不同
iOS:Objective-C或Swift,編譯器為gcc,不要虛擬機在中間插手,執(zhí)行效率高。
Android:通過Java虛擬機來執(zhí)行,系統(tǒng)需要占用大量內(nèi)存來獲取執(zhí)行速度,再加上不定期的內(nèi)存自動回收機制,直接導(dǎo)致了卡頓現(xiàn)象的出現(xiàn)。(事實上Android在換位ART模式后避免了虛擬機帶來的弊端,啟動速度已經(jīng)接近于iOS)
4、系統(tǒng)設(shè)計不同iOS:封閉性,所有APP運行對象比較單一,App Store。Android:終端對象參數(shù)多變,各Android廠商的應(yīng)用市場,APP管理混亂。
5、消息推送機制不同
iOS:APNs統(tǒng)一管理,應(yīng)用不會在后臺占用內(nèi)存。
Android:沒有統(tǒng)一管理機制,應(yīng)用可以一直留在后臺,導(dǎo)致內(nèi)存不足。(雖然Google有官方的GCM推送機制,但國內(nèi)無法使用,所以國內(nèi)更多是接入各類的第三方推送,不夠統(tǒng)一,而國內(nèi)的統(tǒng)一推送聯(lián)盟從成立后就沒什么大動作。。。)
好啦,以上就是我們給大家?guī)淼膇os介紹,感興趣的朋友可以點贊評論分享哦!后續(xù)我們會為大家分享更多好玩有趣的知識,點個關(guān)注吧!