天天看點

淺談ios為什麼比安卓流暢

一、優先級别不同:iOS最先響應螢幕
  當我們使用iOS或者是Android手機時,第一步就是滑屏解鎖找到相應程式點選進入。而這個時候往往是所有操控開始的第一步驟,iOS系統産品就表現出來了流暢的一面,但Android産品卻給人一種卡頓的現象,更别說後續深入玩遊戲或者進行其它操控了。這是為什麼?
  其實這與兩個系統的優先級有關,iOS對螢幕反應的優先級是最高的,它的響應順序依次為Touch--Media--Service--Core架構,換句話說當使用者隻要觸摸接觸了螢幕之後,系統就會最優先去處理螢幕顯示也就是Touch這個層級,然後才是媒體(Media),服務(Service)以及Core架構。而Android系統的優先級響應層級則是Application--Framework--Library--Kernal架構,和顯示相關的圖形圖像處理這一部分屬于Library,你可以看到到第三位才是它,當你觸摸螢幕之後Android系統首先會激活應用,架構然後才是螢幕最後是核心架構。
  優先級的不同導緻了iOS産品以及Android手機在操控過程中的表現差異,當你滑動螢幕進行操控的時候,iOS系統會優先處理Touch層級,而Android系統則是第三個才響應Library層級,這是造成它們流暢度不同的因素之一。

二、硬體工作配置不同: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流暢性偏差的唯一因素,不過影響卻是實實在在存在着。

三、系統設計不同:安卓APP無法統一
  因為iOS産品的封閉性,是以所有的APP運作對象都比較單一,因為每個應用程式都是被運作在iPhone,iPad等iOS産品當中,它們有着很高的硬體利用效率。因為iOS系統的配件供應商隻有那麼幾家,CPU也是一年換一次,這點不像Android終端年年變月月變,開發者很難遇見未來終端分辨率會包含多少種,GPU驅動會包含哪些等等,是以相對來說Android應用開發成本較高且收益較慢。而iOS應用開發則因為軟硬體垂直整合而受益,這樣一來蘋果自然就保證了應用本身其與硬體産品之間的完美結合程度。
  其實Android和iOS兩大系統APP開發情況的不同,也正是它們開發和不開放的特性所造成的。如果要是拿旗艦Android手機加上一個專為這款旗艦産品設計的遊戲,來和蘋果iPhone運作對比的話,你真的不會遇到Android旗艦機出現卡頓延遲的問題,為什麼因為這款遊戲針對這款手機設計,在軟硬等方面都達到了最大化的相容和優化,自然就不會出現停滞的現象。
  而Android系統程式要被安裝在各種符合要求的手機上面,開發者也不可能針對所有的機器型号進行開發,隻能在比較主流的機器上進行測試并保證運作效果,是以他們為了兼顧整個産品線隻能不得不降低遊戲體驗以達到高中低産品可以共用的效果。最後那些占據了Android終端份額的大量大衆使用者們由于自己的手機不是旗艦産品而得不到流暢的使用體驗,自然而然就會産生Android産品不如iOS流暢的抱怨。

  不管是iOS産品感覺比Android流暢還是真的比它流暢,其實說到底原因很簡單。蘋果會花費一年甚至兩年的時間去開發一個桌面icon,一種字型,并去測試螢幕點位,而Android終端中除了Nexus系列之外似乎沒有太多産品可以做到用這麼長的時間去做這麼細緻的事情。有網友說得好,Android做的更多的是“讓系統跑起來”,而iOS擁有着蘋果做的更多的則是“讓系統以最高的效率跑起來”,或許這就是iOS産品比Android更流暢的原因吧。但更好的一面的是,随着谷歌對Android的持續更新以及各廠商對自家産品的循序改進,使得越來越多的Android終端正在擺脫卡頓不流暢的束縛,未來安卓使用者的期待同樣有望得到更好的滿足。      
參考:手機知識 - 電腦百事網: