關于Android流暢度不如iOS的幾點看法

openkk 12年前發布 | 17K 次閱讀 Android IOS

網上一名據稱是前谷歌實習生的人透露了一些關于Android系統硬件加速的內幕。據稱,在 Android3.0和4.0之前,并沒有完整的硬件加速。他們一直在通過硬件加速繪制某些UI元素,并稱效果并不像他們想象中那樣樂觀。他認 為,Android效率低下的設計框架使得它需要通過更強大的CPU/GPU才能確保具有100%的流暢體驗。

他表示在iOS系統中,用戶界面渲染的過程被賦予了很高的優先級,當觸摸屏開始 操作,系統將停止所有進程,將所有資源集中對節目進行渲染。而在Android系統中,就沒有這種待遇了。雖然Android手機配置普遍很高,但進程不 會為界面渲染讓路,由于資源被分配到不同任務中,造成了Android操作的不流暢。

從“前谷歌”“實習生”等定語中大概就可以判斷出,這些言論沒什么權威性。事實上也正是如此。

事實上,Android從1.0版本之后,所有窗口元素的合成和顯示,都是通過硬件完成的。按鈕的動作、下拉菜單的陰影、彈出窗口和提示框的顯示和隱藏等等。同時,各個窗口元素的拼接,類似的任何窗口的移動等,都是通過硬件方式渲染的。

Android4.0中最主要的改變是,在面向Android4.0或更高版本的應用中,硬件加速是被默認開啟的,而不需要在配置文件中設置。在此之前,考慮到某些特殊的繪制操作光靠硬件加速無法很好的完成,強制開啟的話會明顯中斷應用運行,故而未允許其默認打開。

關于Android流暢度不如iOS的幾點看法

Android采用的是Java技術,所有應用在一個叫Dalvik的Java虛擬機中運 行,Dalvik是Android的核心,是google專門為移動設備優化的Java虛擬機,Android應用就是典型的Java應用。可以說 Java應用的優點(成熟、存在大量可重用代碼)就是Android的優點,Java應用的缺點(占內存大、運行速度略低)就是Android的缺點。

所以Android移動設備要能運行順暢,必須有高性能CPU+大內存,256M內存剛剛夠,512M內存差不多了,要運行得很順暢則需要1G內存,要知 道iPhone4才512M內存。高性能CPU+大內存給基于Android的移動設備帶來成本高和耗電量大兩大問題。

關于Android流暢度不如iOS的幾點看法

硬件加速并不如人們認為的那么完美,他占用的RAM巨大。RAM是有限的,分出一大部分去繪制,那處于運行中的進程就會缺少內存。

硬件加速并非流暢的必殺。最初的時候,Android使用了一種完全不同的渲染策略,并做了一些折中:網頁被轉換成一個”顯示列表“,持續的在屏幕上進行繪制,而非使用塊(Tiles)的形式。

關于Android流暢度不如iOS的幾點看法

它的優點就是,在滾動或是縮放的時候不會發生有的塊還沒被渲染出來的現象。而這 個方法的不給力之處就在于頁面復雜的時候,幀速就明顯低了。例如Android3.0,瀏覽器中開始使用塊的方式進行渲染,于是它可以在滾動或是放大的時 候保持一個穩定的幀速,自然也會出現新的塊沒有被立即渲染出來的情況。

換個角度考慮,不能把所有問題都推到硬件加速身上,讓他像個救世主似的,一出手所有問題迎刃而解。首先來說,GPU的性能就限制著渲染速度。隨著屏幕分辨率的不斷提升,幀數和GPU的速度,尤其是內存總線帶寬有很大的關系。隨著像素的提升,GPU能更好的處理圖像運算。

說到iOS,再說說iPhone和iPad。人們普遍認為iOS系統比Android要好,要流暢。像nexus S的硬件幾乎比iPhone4先進兩到三年,但流暢度比較之下,也難分伯仲。

有人說是因為架構不同,這真是沒有的事。iOS和Android同屬類unix系統,本質上沒 有區別,CPU也同為ARM架構。即使說芯片的設計方式,Android高端機的設計也要比蘋果的A4處理器要先進。現如今大多數Android機動輒上 G的內存,而iphone4還是512M,而流暢度卻完勝,這大概不是硬件的問題了吧。


關于Android流暢度不如iOS的幾點看法

iOS是蘋果長期積累的結果,系統核心、基礎服務和應用框架都采用C/C++或object-C開發,而應用采用Cocoa Touch框架,以object- C開發,應用編譯后以本機代碼在設備上運行,因此具有很高的運行效率。
依我看,硬件資源的運用不合理,才是導致運行效率底下的原因。

關于Android流暢度不如iOS的幾點看法
iOS系統憑借良好的軟件監控,對系統資源極端的節約。這也是為什么iOS系統能憑借 512Mb內存,卻能戰翻很多1G內存手機的原因。特別是在后臺上。一般的后臺,程序不會被關閉,而是繼續在系統內部繼續進行。而iOS則是將主程序關 閉,任務交給一個進程,任務完成,則關閉該進程。

這樣的運行方式將內存的消耗降到最小,它不像一般的方式那樣,繼續開啟住程序,讓無用的組件繼續占用內存,無法釋放。普通方式在處理這些任務時,會將這些任務全部搬入系統緩存壓縮或釋放。在需要重新加載時,還要重新解壓讀取。這就導致了加載時間的增加。

iOS的任務處理方式使得任務的加載和內存的釋放更加直接高效。不光如此,內存的有效整理也是 也是iOS系統流暢的原因。它的后臺程序占用內存極少,當系統資源不夠時,它會自動釋放長時間占用內存的進程,包括一些需要保持連接的也會被強行關閉。所 以說,你完全不必刻意去關閉后臺中的軟件。

此外,iOS系統還不允許自定義系統插件,這也是為什么iOS比Android流暢的原因。當你越獄后并裝了若干插件,你會發現流暢度略有下降。
總結

Android采用使用最廣泛java技術,開發人員眾多,容易上手,但也需要較強大的硬件支 撐。而Apple iOS的體系架構相對較為傳統,但運行效率高,對硬件的要求低,成本優勢大,在現有的硬件條件下,應用運行具有最好的順暢感,也更加省電。Apple iOS自成體系,系統架構樸實無華,但干凈清晰,應該算是目前最有效率的移動設備操作系統。 (本文來源:泡泡網 )

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!