優先級別不一樣:iOS最早響應屏幕編程
當咱們使用iOS或者是Android手機時,第一步就是滑屏解鎖找到相應程序點擊進入。而這個時候每每是全部操控開始的第一步驟,iOS系統產品就表現出來了流暢的一面,但Android產品卻給人一種卡頓的現象,更別說後續深刻玩遊戲或者進行其它操控了。這是爲何?網絡
其實這與兩個系統的優先級有關,iOS對屏幕反應的優先級是最高的,它的響應順序依次爲Touch--Media--Service--Core架構,換句話說當用戶只要觸摸接觸了屏幕以後,系統就會最優先去處理屏幕顯示也就是Touch這個層級,而後纔是媒體(Media),服務(Service)以及Core架構。而Android系統的優先級響應層級則是Application--Framework--Library--Kernal架構,和顯示相關的圖形圖像處理這一部分屬於Library,你能夠看到到第三位纔是它,當你觸摸屏幕以後Android系統首先會激活應用,框架而後纔是屏幕最後是核心架構。架構
硬件工做配置不一樣:iOS基於GPU加速框架
目前智能手機硬件裝備競賽當中,其實處理器等配置已經達到了一個瓶頸期,各大旗艦產品在硬件比拼當中基本上沒有太大的區別,而這時候GPU就成爲了一個凸顯差別的重要因素。一些大型軟件像是3D遊戲對GPU性能要求都會比較高,蘋果iPhone產品採用的Power VR SGX系列GPU在當下來講很是的主流,跑分測試數據證實了它並不會比一些旗艦級別的Android產品差勁。編程語言
而iOS系統對圖形的各類特效處理基本上正好都是基於GPU硬件進行加速的,它能夠不用徹底藉助CPU或者程序自己,而是經過GPU進行渲染以達到更流暢的操控表現。可是Android系統產品則並不是如此,由於Android須要適應不一樣的手機硬件,須要知足各類差別配置,因此不少圖形特效大多都要靠程序自己進行加速和渲染,並嚴重依賴CPU運算的操做天然會加大處理器的負荷,從而出現卡頓的問題。雖然Android 4.0以及4.1等更高版本中進行了改進將硬件加速設爲默認開啓,但依舊沒法作到全部特效所有都靠GPU進行加速。在不少Android手機裏面都自帶有「是否開啓GPU渲染」這個功能選項,不過開啓以後的改善也是微乎其微。性能
屏幕最早響應的優先級關係,再加上iSO自己GPU加速程序的特性,使得你們在操控過程當中感受iOS手機擁有着不錯的流暢性。由於它自己的整個流程都是在爲最大化的流暢作服務,不論是第一印象的滑動接觸屏幕,仍是你進一步使用程序以後的更深層操做都是如此。而GPU加速這點特性,應該是它優於Android系統流暢性的又一個因素測試
開發機制不一樣:安卓機制效率低優化
Android的編程語言是JAVA,而iOS的則爲Objective-C,不過要是說Android系統之因此有些卡頓是由於JAVA開發語言的關係,或者是拿它和Objective-C對比確定會有人提出質疑。Objective-C的優點是效率高但比較「惟一」,而JAVA的優點則是跨平臺不過運行效率相對偏低,其實這兩個編程語言所帶來的機制不一樣,就已經形成了各自系統之間的流暢性差別化。iOS的Objective-C,編譯器gcc,而這個gcc編譯出來的代碼又被蘋果專爲iOS架構優化到了極致,運行過程當中也不須要虛擬機在中間插手,執行效率天然很高--引自網絡。這一段話應該是iOS系統自己運行程序的執行過程,而Android是經過JAVA虛擬機來執行,而且系統須要佔用大量內存來換取執行速度,再加上不按期的內存自動回收機制,從而直接致使了卡頓現象的出現。Android的JAVA編程自己運行效率比Objective-C低一些,並且再加上內存自動回收的機制,因此形成了一些卡頓不流暢的現象出現。但根據技術人員講解,現代的JAVA虛擬機效率已經再也不是最大的瓶頸,Android 4.0系統版本以後的卡頓現象明顯獲得了改善,因此這也是有用戶並無發現本身新買的Android手機出現太多卡頓現象的緣由。看來編程語言和機制已經被Android進行了改善,這一樣也不是形成它與iOS流暢性誤差的惟一因素,不過影響倒是實實在在存在着。遊戲