安卓手機為什么感覺做不出與iOS媲美的過渡動畫和如絲般順滑的手勢操作?
文/小伊評科技
作為半個程序開發工程師,我覺得我有必要來談一下為什么安卓發展到現如今這個地步,在流暢度以及跟手度方面依舊沒有辦法和IOS做抗衡的原因,經過比較慎重的思考之后,筆者認為主要是有三個原因:
1.技術層面有差距
2.安卓和IOS執行模式以及效率存在差異;
3.系統所面向的市場不同。
1.技術層面存在差距安卓系統雖然是谷歌公司一手開發和創建(2007年收購安卓之父的團隊)并且一直在提供版本迭代,但是目前市面上絕大多數安卓手機內置的OS均都是由不同手機廠商根據原版安卓系統定制而來。而我們國家在編程方面的起步本身就要比西方國家晚的多,而且由于語言以及思維的限制,如今我們國家整體的編程水平相比于西方國家依舊是有很大差距,這種差距在短時間內很難追得上。
而蘋果恰恰又是最早開始研發硬件系統的一個品牌,在編程方面的技術儲備放眼全球都是一等一的存在。那么你認為單純以技術儲備來說,國內哪一個手機品牌能和蘋果相提并論呢?而手機系統的優化過程本身就是一個經驗積累的過程。所以就現階段而言,國內手機市場還沒有一個手機品牌能夠擁有超越蘋果的實力。
2.安卓和IOS在底層效率方面存在本質區別
安卓為了實現跨平臺的兼容性以及減少開發難度,在應用層采用的是Java語言,這樣雖然提升了系統的兼容性和跨平臺性,但是由于Java虛擬機的存在不可避免地會影響到系統的執行效率。這一點大家從華為發布方舟編譯器的PPT上應該有所了解,安卓系統采用的是邊解析邊執行的方式,效率極低。而IOS則是基于Objective-C開發的產物,在執行效率上要明顯高于基于Java開發的安卓。
如果我們用一個比較生動的例子來解釋的話,IOS的整個執行過程就像是在坐高鐵,從起點直接到達終點,執行效率很高,速度很快。而安卓系統的整個執行過程就像是綠皮車,在過程中走走停停需要不停的編譯和解釋,執行效率自然就要慢了很多。
另外還有一個方面那就是在任務處理的優先級方面,IOS和安卓也有本質的不同。IOS會優先相應Touch層,也就是優先相應用戶的操作;而安卓則是優先相應Application層,也就是應用層,什么意思呢,簡單來說就是在你進行一次操作之后,IOS是不管應用啟動沒啟動都會給你一個及時的操作反饋(動畫),而安卓則是先執行應用,再根據應用的反饋結果給你一個操作反饋,這種差異會隨著應用的復雜程度而逐漸凸顯,這也就是為什么安卓在打開游戲等大型應用的時候其流暢度始終無法和IOS相媲美的核心原因之一。
3. IOS和安卓所面向的市場是完全不同的,安卓必須要考慮兼容性。IOS是一個完全封閉的系統,其面向的機型相比于安卓要少得多,而且其每一年發布的新機的性能都是一樣的,所以在針對不同機型的系統優化方面的工作量就要小得多了。而安卓則不同,安卓陣營的手機五花八門,上到售價萬元的高端旗艦下到售價千元的低端手機應有盡有,而這些機器的性能差距同樣也是非常巨大的,這就給系統優化造成了極大的挑戰和難度。
比如我們就拿非線性交互動畫這個來說吧,安卓可以不可以加入類似IOS的那種非線性動畫效果呢?當然是可以的,但是加入非線性動畫肯定會拔高系統對于硬件性能的需求,這點需求對于擁有旗艦級處理器的高端安卓手機來說不是問題,但是對于那些低端手機呢?肯定會讓本身就吃緊的性能更加的捉襟見肘,而想要針對不同價位的手機做細分那是完全不可能的事情。
不過好在隨著硬件配置的提升,現如今的很多安卓手機系統均配備了非線性的動畫切換效果,在整體流暢度表現方面已經有了長足的進步。
總的來說吧,安卓和IOS的差距是系統底層以及市場方面雙重影響的結果,安卓的定位注定了其在安全性以及流暢度方面是不可能做到和IOS一樣的,而IOS也注定了是無法大規模普及使用的,