iOS 的響應速度為何比 Android 快那麼多?
谷歌的研發能力毋庸置疑,可為什麼安卓系統(即便是安卓陣營各大品牌的旗艦機型)的響應速度跟蘋果比差那麼多?
最主要的原因有兩個:
- 一是 android 上面的第三方應用的開發質量很低,導致只要你安裝了第三方軟體,就可能導致整機卡頓。什麼軟體都不裝的原生 Nexus 設備還是比較流暢的,所有非 google 的軟體都不裝前提下。
- 二是大多數 android 手機的硬體配置比 iPhone 要低,尤其 GPU 部分基本沒有超過 iPhone 的
第二個原因其實很多廠商努力在克服,很多人在報抱怨 android 產商堆硬體,其實他們那麼賣力的堆硬體也並沒有趕上蘋果堆硬體的速度,而蘋果堆硬體是偷偷堆,只是從來不宣傳而已,例如蘋果從來不會宣傳它把 iPhone 的 GPU 堆到了幾乎所有 android 機型無法抗衡的逆天程度。目前,只有旗艦 android 機型才勉強與 iPhone 性能持平,甚至仍然比 iPhone 略低。
至於第一個原因就很難克服了。要麼選擇不安裝任何第三方軟體,要麼選擇集成一些自啟動管理,網路訪問管理,電池管理等工具,讓那些軟體在不用的時候無法偷偷運行,無法影響整機系統的流暢度,這需要對 android 很熟悉才能做到。實際上 android 已經成長為跟 windows 差不多的,惡意軟體肆掠的平台了,非 IT 業內人員很難流暢使用 android。這是開放性與自由性所必然付出的代價。"蘋果骨子裡對GUI的重視,一切以視覺和手指感受為中心優化界面和APP還有建立機制確保這種體驗" VS "以市場和技術為中心,做出來的東西差不多就行了"
說到底了就是世界觀不一樣導致的結果本來不想回答這些問題,反正隨便Android怎麼改變在一些人眼裡就是一屌絲系統,永遠無法和高貴冷艷的iOS相比,不然某些人的虛榮心怎麼滿足呢。
一下答案排名不分先後,直說結論,別問我為什麼,最後給大家個大結論。
1、硬體性能永遠落後iPhone
2、早期的dalvik虛擬機性能優化差
3、Android直接繼承Linux內核,保留了更多桌面系統特性
4、Android手機硬體種類多,很難針對特定硬體進行優化。
5、早期Android版本對GPU的圖形加速支持差
6、某些從iOS平台直接移植的應用和國內開發質量低下的應用
7、一些修改過多的第三方ROM
8、後台多任務、Android系統架構、dalvik虛擬機對系統流暢度影響很小(不包括國內應用和ROM)
大結論:早期Android背了個卡頓的惡名,被果粉們抓住不放,那時候的硬體無法支持直接一直過來的Linux內核加J2SE(不是以前手機上用的J2ME,這也是一些人誤解Android的理由),小馬拉大車的局面自然很難發揮Android的優勢。但是手機硬體在這幾年發展多快你們看不到嗎?只要你別買幾百塊錢的山寨機,Android並不像你想的那樣。說實話,蘋果的CoreAnimation, CoreGraphics真的和Android簡單使用OpenGL是不能比的。而且蘋果採用墓碑機制,系統相對封閉,使得系統響應的優先順序始終最高。再加上硬體優秀,響應速度自然就快了。
請用你買蘋果的錢去買一台android手機, 然後開機後把不需要的應用全部殺掉(其實這個比較複雜), 然後運行任何一個ios, android上都有的程序, 這個時候, 你真的確定 iOS 的響應速度比Android快那麼多?
至於為什麼在其它情況下android要慢很多, 請參考其它答案.別拿1000來塊的android手機和5000塊的iPhone比,也別簡單的拿一個廠家定製安裝了無數垃圾軟體的機子直接去比。
iPhone的配置很高,而且屏幕小,gpu壓力小很多。基本是單進程模式更是大幅度的用功能換性能。
不過最新版的Android已經很不錯了。不信你試試2000多塊的nexus5,用art模式,日常使用流暢度已經不亞於iPhone。很多 Android 手機的配置並不比 iPhone 要低,目前,大多數 Andorid 手機的RAM都有 1GB,而 iPhone 4S 只有 512MB RAM,但用過 iPhone 的人都知道 Android 手機在使用的時候總感覺沒有那麼順滑,究竟為什麼會出現這種現象呢?
本帖隱藏的內容一位軟體工程師和前 Google 實習生 Andrew Munn解釋說是因為 Android 系統 UI 效率低下的框架設計的問題。
不過,這個實習生 Andrew Munn 是一個軟體工程專業的本科畢業生,他在 Android 團隊並沒有在框架團隊工作,也沒有看過 Android 渲染的源代碼,因此他所說的未必是 100% 準確。並且他也曾經Windows Phone 團隊工作過,因此可能會不自覺的對 Android 產生偏見。以下就是他對 Android 為什麼沒有 iOS 流暢體驗的看法。
Android 沒有 iOS 流暢的原因並非 Java GC 導致暫停,也不是因為 Android 運行的是 Java 編譯的 bytecode 而 iOS 運行的 native code,根本的原因是,iOS 的 UI 渲染採用實時優先順序,而 Android 的 UI 渲染遵循傳統電腦模式的主線程普通優先順序。
這聽起來似乎很抽象和難以理解,但大家可以嘗試一下,使用你的 iPad 或者 iPhone,打開 Safari,然後載入一個複雜的網頁,例如新浪網首頁,當網頁載入到一半的時候,把你的手指放在屏幕上,並且四處移動,你會發現所有的渲染立刻停止,在你拿開手指前,網頁永遠也不會繼續載入。
而在 Android 設備上重複這個操作,你會發現,瀏覽器會繼續嘗試載入頁面並渲染 HTML,試圖多任務同時進行,因此對於 Android 來說,一個高效的雙核處理器是很重要的,這也就是 Galaxy S II 能夠非常平滑的原因。
在 iOS 中 UI 渲染過程具有絕對的優先等級,當用戶接觸到 iPhone 的觸摸屏後,iOS 中所有的進程都將停止,UI 線程攔截了所有的事件,系統會將所有資源用於渲染 UI 過程,以保證用戶界面的實時渲染優先順序。而在 Android 系統中 UI 渲染過程的優先順序別卻沒有那麼高,也就是說當你觸摸 Android 手機屏幕的時候,系統後台的程序並沒有停止,仍然在繼續運行之中,比如下載和查收簡訊,這樣系統 UI 獲得的資源就不夠,這就是 Android 系統不流暢的原因。
由於這個原因,新發布的 Galaxy Nexus,甚至配備四核處理器的話說 EeePad Transformer Prime 平板電腦都無法保證順滑的操作體驗,這些設備只能與 3 年前的 iPhone 順滑程度相比,那麼 Android 團隊為什麼不從根本解決這個問題呢?
除了 UI 渲染之外,Android 缺乏有效的的硬體加速也是一個原因,在不同的 Android 手機上的硬體加速存在巨大差異,而蘋果是唯一一個既做硬體又做軟體的手持設備公司,只有蘋果可以在硬體中插入對軟體的優化,使得基於蘋果晶元的設備不僅省電,而且流暢。
實際上,Android 的開發工作在第一代 iPhone 發布之前就已經開始了,原始 Android 原型體被設計成為使用鍵盤手機的設備,也就是黑莓手機的競爭對手。UI 渲染優先順序別在有鍵盤的手機上並沒有那麼重要。
在 iPhone 發布之後,Android 小組為了快速推出能與 iPhone 競爭的產品,迅速將 Android 改成觸摸屏手機系統,但那時重寫 UI 框架已經不可能了。因為如果這樣 Android 應用市場中的所有程序將變得不可用,這種關係將一直處於惡性循環之中。說白了,那些吹捧ios黑Android的,都根本沒用過Nexus 4和三星S4,還有小米2s
1,ip是ob-c,安卓是java,安卓每開一個程序就會開一個虛擬機,速度自然就慢了。 安卓4.4之前用的Dalvik Java虛擬機都要經過編譯轉成機器碼再運行,速度就慢了。4.4出的art模式很好的改善了,在art下流暢和ios幾乎差不多,但畢竟因為各種原因還沒有普及。2,安卓沒有很完善的app審查機制,應用良莠不齊,尤其一堆國產軟體不把安卓的全部許可權都拿了就不爽,接收器掛滿,導致開了一個程序就有後台一堆的連鎖反應。
問題是否有點先入為主的嫌疑?室友用的愛瘋4s啟動應用程序也會卡頓,運行天天酷跑幾局後也同樣發熱顯示不流暢,但用三星蓋世4的時候已經很少感覺卡機,一定程度上畢竟價格擺在那,兩千塊的小米3和四千塊的愛瘋4s(已經降了哈),如果一樣流暢一樣爽,那愛瘋還賣得出去嗎?
最主要的原因還是軟體原因,谷歌過於開放,許可權開放過多,導致很多軟體比如百度系軟體,淘寶,360之類幾乎所有比較有名氣的軟體都爭搶後台資源,比如很多軟體都有個網路切換觸發的動作,甚至噁心的你關和屏幕他都在後台啟動,另外很多軟體不管你用戶需要不都喜歡掛個後台服務,比如百度地圖,淘寶之類,支付寶,,軟體掛多了不慢才怪,ios因為有強制行的統一後台推送,所以對速度控制的比較好谷歌雖然也有,但是在國內不流行,導致國內的軟體紛紛掛後台,所以用安卓的東西還是得裝啟動管理,綠色服務之類的管理軟體,不然還真的沒幾個軟體好用總體感覺ios還是比較適合對電腦不太懂的人,軟體裝多了對流暢性也沒什麼影響,安卓的就不行
最主要的原因有兩個:
- 一是 android 上面的第三方應用的開發質量很低,導致只要你安裝了第三方軟體,就可能導致整機卡頓。什麼軟體都不裝的原生 Nexus 設備還是比較流暢的,所有非 google 的軟體都不裝前提下。
- 二是大多數 android 手機的硬體配置比 iPhone 要低,尤其 GPU 部分基本沒有超過 iPhone 的
不知道為何有這麼多人頂這個答案。。這答案完全沒有切入根本。
首先如果只是運行單純的系統,Android和IOS並沒有明顯區別,普通用戶幾乎感覺不到差別的存在。
讓我們感覺到Andorid比IOS慢的根本原因是以下幾點:1. IOS系統限制了後台線程的使用,而Android系統沒有,所以每個程序都可能去跑後台,這種跑後台的程序多了。自然就佔用了運行時內存,導致了Android設備的內存緊張,從而顯現為慢的現象。2. IOS系統的原生APP是基於C語言編寫,而大部分Android的原生APP是基於java語言編寫,但凡基於java語言編寫的程序都需要運行於虛擬機,所以在運行的過程中,Andorid多了一個轉換的步驟,這也是Android顯得比較慢的原因。(但是Android上一些優秀的遊戲程序也是通過C或者其他腳本語言編寫,速度也不必IOS慢)3. IOS系統的APP審核比較嚴格,而Android的APP審核比較鬆散,所以Andorid的APP總體質量不如 IOS 系統的APP,這也就給人造成了Android的APP速度總體比較慢的感覺以上三點才是Android顯得慢於IOS的原因。。
至於硬體配置。現在的Android旗艦機型在硬體配置上幾乎都甩了IOS設備幾條街了。。。只是能趕上 IOS 做工的設備還沒有(做工 ≠ 配置)(修改:關於移動互聯領域的信息,可以關注本人博客:http://lyjbk.com)只說系統,自從Google的butter計劃以後,原生Android的響應速度提升的十分明顯,與iOS 的差距微乎其微了。
如果你還是發現響應很慢的話,只能說你用的手機不夠好。。。現在是2016年,10月30日。我感覺安卓已經比蘋果,快一些了。
答案只是我的猜想
ios的過場動畫銜接的太好了,即使它慢了,也不會有卡頓感
android給人的感覺是分步走,載入完一部分,再載入下一部分,銜接部分基本只是一個圓形進度條感覺就是,同樣是2秒的動畫
ios把它放慢成了3秒,慢慢播放android是播放完1秒,停1秒,再播放1秒我胡說的,你不要打我,我那麼可愛iphone你花了多少錢買的,Android機子你花了多少錢買的。拿一兩千的Android機子跟iphone比就是耍流氓,你買個頂級價格的Android比比看咯