iOS的流暢性

1優先級別不一樣:iOS最早響應屏幕

優先級別不一樣:iOS最早響應屏幕html

    當咱們使用iOS或者是Android手機時,第一步就是滑屏解鎖找到相應程序點擊進入。而這個時候每每是全部操控開始的第一步驟,iOS系統產品就表現出來了流暢的一面,但Android產品卻給人一種卡頓的現象,更別說後續深刻玩遊戲或者進行其它操控了。這是爲何?編程

    其實這與兩個系統的優先級有關,iOS對屏幕反應的優先級是最高的,它的響應順序依次爲Touch--Media--Service--Core架構,換句話說當用戶只要觸摸接觸了屏幕以後,系統就會最優先去處理屏幕顯示也就是Touch這個層級,而後纔是媒體(Media),服務(Service)以及Core架構。而Android系統的優先級響應層級則是Application--Framework--Library--Kernal架構,和顯示相關的圖形圖像處理這一部分屬於Library,你能夠看到到第三位纔是它,當你觸摸屏幕以後Android系統首先會激活應用,框架而後纔是屏幕最後是核心架構。網絡

四大因素決定 iOS爲何會比安卓流暢
iOS系統優先處理Touch層級(圖片來自網絡)架構

    能夠看到優先級的不一樣致使了iOS產品以及Android手機在操控過程當中的表現差別,當你滑動屏幕進行操控的時候,iOS系統會優先處理Touch層級,而Android系統則是第三個才響應Library層級,這是形成它們流暢度不一樣的因素之一。不過優先級對系統流暢性有有影響不假,但並非最絕對的,形成兩系統之間流暢性不一的現象還有其它因素,咱們能夠接着往下看。
 
 

2硬件工做不一樣:iOS基於GPU加速

 

硬件工做配置不一樣:iOS基於GPU加速框架

    目前智能手機硬件裝備競賽當中,其實處理器等配置已經達到了一個瓶頸期,各大旗艦產品在硬件比拼當中基本上沒有太大的區別,而這時候GPU就成爲了一個凸顯差別的重要因素。一些大型軟件像是3D遊戲對GPU性能要求都會比較高,蘋果iPhone產品採用的Power VR SGX系列GPU在當下來講很是的主流,跑分測試數據證實了它並不會比一些旗艦級別的Android產品差勁。編程語言

四大因素決定 淺析iOS爲何比安卓流暢
A6處理器集成了Power VR SGX543顯示芯片(圖片引自驅動之家)性能

    而iOS系統對圖形的各類特效處理基本上正好都是基於GPU硬件進行加速的,它能夠不用徹底藉助CPU或者程序自己,而是經過GPU進行渲染以達到更流暢的操控表現。可是Android系統產品則並不是如此,由於Android須要適應不一樣的手機硬件,須要知足各類差別配置,因此不少圖形特效大多都要靠程序自己進行加速和渲染,並嚴重依賴CPU運算的操做天然會加大處理器的負荷,從而出現卡頓的問題。雖然Android 4.0以及4.1等更高版本中進行了改進將硬件加速設爲默認開啓,但依舊沒法作到全部特效所有都靠GPU進行加速。在不少 Android手機裏面都自帶有「是否開啓GPU渲染」這個功能選項,不過開啓以後的改善也是微乎其微。
 
iOS圖形特效基於GPU加速渲染
    屏幕最早響應的優先級關係,再加上iSO自己GPU加速程序的特性,使得你們在操控過程當中感受iOS手機擁有着不錯的流暢性。由於它自己的整個流程都是在爲最大化的流暢作服務,不論是第一印象的滑動接觸屏幕,仍是你進一步使用程序以後的更深層操做都是如此。而GPU加速這點特性,應該是它優於Android系統流暢性的又一個因素。
 

3開發機制不一樣:安卓機制效率低

 

開發機制不一樣:安卓機制效率低測試

    Android的編程語言是JAVA,而iOS的則爲Objective-C,不過要是說Android系統之因此有些卡頓是由於JAVA開發語言的關係,或者是拿它和Objective-C對比確定會有人提出質疑。Objective-C的優點是效率高但比較「惟一」,而JAVA的優點則是跨平臺不過運行效率相對偏低,其實這兩個編程語言所帶來的機制不一樣,就已經形成了各自系統之間的流暢性差別化。字體

四大因素決定 iOS爲何會比安卓流暢
Android系統架構(圖片來自網絡)優化

     iOS的Objective-C,編譯器gcc,而這個gcc編譯出來的代碼又被蘋果專爲iOS架構優化到了極致,運行過程當中也不須要虛擬機在中間插手,執行效率天然很高--引自網絡。這一段話應該是iOS系統自己運行程序的執行過程,而Android是經過JAVA虛擬機來執行,而且系統須要佔用大量內存來換取執行速度,再加上不按期的內存自動回收機制,從而直接致使了卡頓現象的出現
 

iOS系統架構有着不錯的運行效率

    Android的JAVA編程自己運行效率比Objective-C低一些,並且再加上內存自動回收的機制,因此形成了一些卡頓不流暢的現象出現。但根據技術人員講解,現代的JAVA虛擬機效率已經再也不是最大的瓶頸,Android 4.0系統版本以後的卡頓現象明顯獲得了改善,因此這也是有用戶並無發現本身新買的 Android手機出現太多卡頓現象的緣由。看來編程語言和機制已經被Android進行了改善,這一樣也不是形成它與iOS流暢性誤差的惟一因素,不過影響倒是實實在在存在着。

4系統設計不一樣:安卓APP沒法統一

 

系統設計不一樣:安卓APP沒法統一

    有了優先級的關係,有了GPU加加速的影響,還有兩個系統各自編程以及機制的問題,彷佛已經能夠說明爲何iOS相比 Android更爲流暢的緣由。但最終還有一個問題是就是應用程序,很顯然用戶以爲卡頓都是在運行軟件的過程當中產生,畢竟沒有安裝任何應用的初始出廠手機基本上都不存在不流暢或者延遲等現象,並且一款 智能手機不安裝任何應用程序那也不符合用戶的購買初衷和使用行爲。因此歸根結底,Android相比iOS的應用程序,到底出了什麼問題?

App Store是蘋果和iOS的另外一個標誌

    由於iOS產品的封閉性,因此全部的APP運行對象都比較單一,由於每一個應用程序都是被運行在iPhone,iPad等iOS產品當中,它們有着很高的硬件利用效率。由於iOS系統的配件供應商只有那麼幾家,CPU也是一年換一次,這點不像Android終端年年變月月變,開發者很難碰見將來終端分辨率會包含多少種,GPU驅動會包含哪些等等,因此相對來講Android應用開發成本較高且收益較慢。而iOS應用開發則由於軟硬件垂直整合而受益,這樣一來蘋果天然就保證了應用自己其與硬件產品之間的完美結合程度。

    其實Android和iOS兩大系統APP開發狀況的不一樣,也正是它們開發和不開放的特性所形成的。若是要是拿旗艦 Android手機加上一個專爲這款旗艦產品設計的遊戲,來和蘋果 iPhone 5運行對比的話,你真的不會遇到Android旗艦機出現卡頓延遲的問題,爲何由於這款遊戲針對這款手機設計,在軟硬等方面都達到了最大化的兼容和優化,天然就不會出現停滯的現象。
 

  而Android系統程序要被安裝在各類符合要求的手機上面,開發者也不可能針對全部的機器型號進行開發,只能在比較主流的機器上進行測試並保證運行效果,因此他們爲了兼顧整個產品線只能不得不下降遊戲體驗以達到高中低產品能夠共用的效果。最後那些佔據了Android終端份額的大量大衆用戶們因爲本身的手機不是旗艦產品而得不到流暢的使用體驗,天然而然就會產生Android產品不如iOS流暢的抱怨。

寫在最後:

    不論是iOS產品感受比Android流暢仍是真的比它流暢,其實說到底緣由很簡單。蘋果會花費一年甚至兩年的時間去開發一個桌面icon,一種字體,並去測試屏幕點位,而Android終端中除了Nexus系列以外彷佛沒有太多產品能夠作到用這麼長的時間去作這麼細緻的事情。有網友說得好,Android作的更多的是「讓系統跑起來」,而iOS擁有着蘋果作的更多的則是「讓系統以最高的效率跑起來」,或許這就是iOS產品比Android更流暢的緣由吧。但更好的一面的是隨着谷歌對Android的持續升級以及各廠商對自家產品的循序改進,使得愈來愈多的Android終端正在擺脫卡頓不流暢的束縛,將來安卓用戶的期待一樣有望獲得更好的知足。

 
其實,道理即使你們不知道,從真實的體驗也能感受到。四核Android只是在本地、自家應用方面優化的不錯,若是安裝第三方軟件的話,2000、3000、4000幾個價位的產品體驗差異就不怎麼明顯了,仍是輸在根上了。
相關文章
相關標籤/搜索