Android與iOS:誰(shuí)更適合HTML 5?
2011年12月上旬,Google發(fā)布了Android移動(dòng)操作系統(tǒng)的最新重大升級(jí)。新操作系統(tǒng)是Android 4,代號(hào)為“冰淇淋三明治(Ice Cream Sandwich)”。對(duì)于Web開(kāi)發(fā)人員而言,這是對(duì)Android的一次大考:如果要在 iOS 和 Android 上構(gòu)建跨瀏覽器的應(yīng)用,HTML 5是可行的解決方案嗎?
我們?cè)赟encha測(cè)試了最新版本的iOS 5和Android 4,以了解每個(gè)平臺(tái)提供給Web開(kāi)發(fā)人員的特性以及它們各自的優(yōu)勢(shì)。
為了成為一流的Web應(yīng)用平臺(tái),瀏覽器要向Web開(kāi)發(fā)人員提供一系列核心功能:渲染引擎,用于盡可能流暢地顯示視覺(jué)元素;Javascript引擎,用于執(zhí)行應(yīng)用程序邏輯;以及DOM(文檔對(duì)象模型)和瀏覽器API,用于提供HTML5的特性以及支持發(fā)起網(wǎng)絡(luò)請(qǐng)求、上傳文件、操作頁(yè)面等動(dòng)作。為了從Web應(yīng)用開(kāi)發(fā)人員的角度比較Android 4和iOS 5,我們分別討論了這三部分內(nèi)容。
WebKit:Android 4進(jìn)步明顯,但仍然落后
幾乎所有移動(dòng)設(shè)備的Web瀏覽器都使用了WebKit渲染引擎。WebKit最先起源于蘋果的開(kāi)源項(xiàng)目KDE/KHTML,現(xiàn)在Google、Qualcomm、RIM和其他很多廠商都加入了WebKit家族。它現(xiàn)在已經(jīng)成為移動(dòng)設(shè)備上渲染W(wǎng)eb內(nèi)容的事實(shí)標(biāo)準(zhǔn)。Android 4和iOS 5瀏覽器都基于WebKit,但是版本稍有不同。Android 4實(shí)現(xiàn)了WebKit 534.30,而蘋果則實(shí)現(xiàn)了534.46。
雖然iOS的版本較新,但它們之間的差距很小,這是因?yàn)閃ebKit的渲染性能取決于它在硬件和軟件上的具體實(shí)現(xiàn)。我們?cè)跍y(cè)試中發(fā)現(xiàn)Android 4的渲染速度比Android 2.x和Android 3有明顯提高。觸摸滾動(dòng)變得順暢了很多,Android上常見(jiàn)的停頓也基本上完全消失了。不幸的是,它在渲染上有明顯的缺陷,比如在使用JavaScript和CSS3移動(dòng)屏幕上的元素時(shí)會(huì)出現(xiàn)閃爍和滾屏緩慢。對(duì)于依賴動(dòng)態(tài)地移動(dòng)元素的Web應(yīng)用來(lái)說(shuō),Android 4的表現(xiàn)比Android 2.2要差??傮w上說(shuō),Google在增強(qiáng)瀏覽器體驗(yàn)方面取得了很大的進(jìn)步。
同時(shí),Android 4新支持了很多CSS3特性,而iOS 5很早之前就支持這些特性。具體說(shuō)來(lái),Android 4現(xiàn)在完善地支持了CSS3 2D和3D變換、動(dòng)畫(huà)、過(guò)渡和反射。這對(duì)于Android來(lái)說(shuō)是巨大的進(jìn)步,因?yàn)殚_(kāi)發(fā)人員在設(shè)計(jì)流暢而漂亮的Web應(yīng)用時(shí)不會(huì)再只想到蘋果。伴隨著對(duì)這些特性的支持,我們希望Google和Android硬件供應(yīng)商一起努力,對(duì)其產(chǎn)品仔細(xì)琢磨,實(shí)現(xiàn)無(wú)閃爍和高性能,以獲得開(kāi)發(fā)人員對(duì)高級(jí)渲染特性的真正支持。
JavaScript:性能旗鼓相當(dāng)
在iOS 5中,蘋果引入了新的JavaScript引擎Nitro,它在移動(dòng)Safari瀏覽器中能極大地提高JavaScript的性能。一段時(shí)間內(nèi),iOS 5的移動(dòng)瀏覽器JavaScript引擎是業(yè)內(nèi)最快的。Android再次迎頭趕上:Android 4中的JavaScript引擎比起Android 2.x(Gingerbread)有了很明顯的提升。在某些硬件上,它比iOS 5更快。為了實(shí)現(xiàn)這一目標(biāo),Google引入了之前Chrome瀏覽器的JavaScript V8引擎,最終使得JavaScript的執(zhí)行速度提升了2倍多?,F(xiàn)在iOS 5和Android 4在JavaScript方面基本完全一樣,這意味著開(kāi)發(fā)人員應(yīng)該假設(shè)在這兩種平臺(tái)上開(kāi)發(fā)基本沒(méi)有差別。
iOS 5/Safari在API上略勝一籌
瀏覽器之爭(zhēng)的最后一部分則是瀏覽器API,它包括網(wǎng)絡(luò)訪問(wèn)、文件系統(tǒng)訪問(wèn)、Canvas和其他富應(yīng)用程序所需的功能。iOS對(duì)API的支持一貫領(lǐng)先。iOS 5支持某些特性,比如“overflow: scroll”;WebKit私有的屬性“-webkit-overflow-scrolling: touch”(允許獨(dú)立的滾動(dòng)區(qū)域和觸摸回彈);Web Sockets(用于即時(shí)通信);Web Workers(用于后臺(tái)處理);大量的其他HTML 5輸入類型(比如數(shù)字和日期)。Android 4不支持這些常見(jiàn)的HTML 5特性,但是也有一個(gè)突出的亮點(diǎn):對(duì)文件API的支持。文件API讓開(kāi)發(fā)人員能夠操作設(shè)備上的本地文件,能夠開(kāi)發(fā)更富體驗(yàn)的應(yīng)用,同時(shí)還能訪問(wèn)手機(jī)攝像頭旋轉(zhuǎn)等功能。盡管如此,iOS 5還是提供了更豐富的瀏覽器API,對(duì)HTML 5特性有更廣泛的支持。
現(xiàn)在iOS 5全面領(lǐng)跑
移動(dòng)瀏覽器的領(lǐng)袖還是iOS 5。
盡管Android在JavaScript的性能上已經(jīng)和蘋果并駕齊驅(qū),但是總體說(shuō)來(lái),移動(dòng)平臺(tái)的Safari支持的API更多,圖形性能更好。Android 4的瀏覽器取得了很大的進(jìn)步,獲得了更好的視覺(jué)效果(但是有缺陷)和渲染速度,更快的JavaScript引擎。Android 4比以前的任何版本都要好。正在尋求Web標(biāo)準(zhǔn)以提供跨平臺(tái)解決方案的開(kāi)發(fā)人員在使用HTML 5時(shí)會(huì)比以前更舒服,因?yàn)?strong>Android 4中的改進(jìn)標(biāo)志著Google的迅猛發(fā)力,這為他們的應(yīng)用開(kāi)啟了巨大的潛在市場(chǎng)。