黑一下HTML5 看上去很美? |
發(fā)布時(shí)間: 2012/9/19 17:12:40 |
HTML5的“跨平臺(tái)優(yōu)勢(shì)”一說(shuō)由來(lái)已久。我們之前曾報(bào)道Facebook工程師的改版手記,其中提到他們對(duì)HTML5跨平臺(tái)快速迭代的推崇。然而前不久扎克伯格卻公開(kāi)發(fā)聲“押注HTML5是大錯(cuò)”。關(guān)于它的實(shí)用性,或許使用者自己才更有發(fā)言權(quán)。 以下是Cocos2D-X核心開(kāi)發(fā)者王哲在cocoaChina移動(dòng)開(kāi)發(fā)者大會(huì)上的演講。他認(rèn)為本地應(yīng)用的好處在于可以將資源打包運(yùn)行,缺點(diǎn)是iOS審核及Android碎片化;HTML5看似跨平臺(tái),實(shí)則碎片化較Android更嚴(yán)重。各有優(yōu)缺點(diǎn)的情況下,較理想的方式是Hybrid(混合模式),當(dāng)然它也并非天衣無(wú)縫,還存在蘋(píng)果方面的條款風(fēng)險(xiǎn)。而一定只鼓吹“某一種模式必勝”的,背后更多是利益相關(guān),目前開(kāi)發(fā)者只能盡己所能,將來(lái)如何需要看整個(gè)生態(tài)的發(fā)展。 (有趣的是,王哲曾是“新概念作文大賽”的冠軍,前一屆的冠軍里出了韓寒(微博),后一屆的冠軍里出了郭敬明,而他則被調(diào)侃為“誤入程序員”。)
全文如下,略整理刪改: 最近在討論的是,用哪一種方式能把跨平臺(tái)的游戲做得更具一致性,體驗(yàn)更好。目前有三不同的基礎(chǔ),Native(本地應(yīng)用)、HTML5、Hybrid(二者結(jié)合模式),一般的框架只會(huì)選擇其中之一。我們?cè)陂_(kāi)發(fā)過(guò)程中有一些心得可以跟大家分享一下。 Native,我們能夠確定他們用的技術(shù)方案。在升級(jí)的時(shí)候不需要把整個(gè)游戲重新下載,它是一個(gè)增量升級(jí)的概念,就是說(shuō)它可以把腳本和資源打成一個(gè)包,下載完以后直接在本地運(yùn)行。以目前的情況,困難在于Android的碎片化,自更新需要花很多的力量;而在蘋(píng)果上,游戲發(fā)布后每次更新就必須等待漫長(zhǎng)的審核周期。所以我們對(duì)Native的感情是很復(fù)雜的,這些年靠最靠譜的方式給大家?guī)?lái)了收益,但是它又有這樣那樣的缺點(diǎn)。 HTML5是來(lái)補(bǔ)救Native的缺點(diǎn)的。HTML5是在瀏覽器里面跨平臺(tái)的做,自己就比較省事兒了。目前爭(zhēng)論的比較多,到底移動(dòng)互聯(lián)網(wǎng)是Native還是HTML5。HTML5信徒說(shuō)未來(lái)HTML5必然要取代Native,實(shí)際上這些爭(zhēng)吵的背后代表了不同的利益集團(tuán)。Native主要是手機(jī)平臺(tái)商,就是做操作系統(tǒng)方面的,HTML5的陣營(yíng)主要是做瀏覽器,還有做搜索,比如說(shuō)FaceBook這樣的廠(chǎng)商。站在開(kāi)發(fā)者的角度上往前看誰(shuí)有能力,實(shí)際上最后還是共生共存的狀態(tài)。公正的看這件事情,還是要客觀的看數(shù)據(jù)。
HTML5放在不同操作系統(tǒng)瀏覽器上的跑分HTML5放在不同操作系統(tǒng)瀏覽器上的跑分 把HTML5放在不同操作系統(tǒng)瀏覽器上跑,得分都不一樣,實(shí)際上很少人說(shuō)這背后有什么樣的意義。我認(rèn)為它背后的意義是HTML5已經(jīng)開(kāi)始碎片化。這件事情是不可避免的。因?yàn)锳ndroid和iOS代表了對(duì)這個(gè)生態(tài)圈完全不同的兩種態(tài)度。Android比較自由沒(méi)有太多的約束,大家都可以搞,結(jié)果就出現(xiàn)了不同的定制、不同的操作系統(tǒng)、不同的商城。而蘋(píng)果的方式是很?chē)?yán)格的控制,有點(diǎn)兒像獨(dú)裁者,你的游戲是否能上去完全看他的心情。 第二個(gè)問(wèn)題,是它的性能。我們的游戲?qū)嶒?yàn)下來(lái)的結(jié)果,超過(guò)幾百個(gè)元素在動(dòng)的時(shí)候,還達(dá)不到要求的標(biāo)準(zhǔn)。所以HTML5有它的優(yōu)點(diǎn),也有它的缺點(diǎn),未來(lái)有可能更好,也有可能更糟糕,但是這個(gè)事情不是我們能夠決定的。所以,目前能做的是在現(xiàn)有的框架、現(xiàn)有的標(biāo)準(zhǔn)基礎(chǔ)做到最好,但最后整個(gè)生態(tài)圈走多遠(yuǎn)還是看HTML5發(fā)展的情況。 Native和HTML5各有缺點(diǎn),所以第三種方式是Hybrid。國(guó)內(nèi)有一些廠(chǎng)商會(huì)采用這種技術(shù)方案。有的游戲使用Native,結(jié)果是每次升級(jí)需要下載幾十兆的包,還存在審核周期長(zhǎng),需要發(fā)布多渠道維護(hù)的情況。Hybrid怎么做呢?發(fā)到所有渠道里面,然后游戲第一次啟動(dòng)的時(shí)候,到服務(wù)器上下載游戲的腳本和資源,大概80MB左右,后面的升級(jí)每次開(kāi)游戲的時(shí)候自動(dòng)監(jiān)測(cè)一下,有沒(méi)有升級(jí)包,有的話(huà)就下載下來(lái),解壓完以后腳本和圖片資源替換掉,這樣就完全避免了Native目前碎片化的問(wèn)題。對(duì)于HTML5來(lái)講,它運(yùn)行效率非常高、非常流暢。 除了解決前面這些問(wèn)題之外,它還會(huì)帶來(lái)一個(gè)額外的收益就是開(kāi)發(fā)時(shí)間。目前Native版本開(kāi)發(fā)人員成本高,開(kāi)發(fā)周期特別長(zhǎng),用Hybrid之后,用腳本化的編程都能夠大大的加快游戲開(kāi)發(fā)的速度,它還是處于一種運(yùn)行速度和開(kāi)發(fā)速度折中的方案。 同一個(gè)測(cè)試游戲,在iPhone 4S Safari用HTML5和Hybrid下的不同表現(xiàn)(左下為跑分)同一個(gè)測(cè)試游戲,在iPhone 4S Safari用HTML5和Hybrid下的不同表現(xiàn)(左下為跑分) 舉一個(gè)例子對(duì)比一下。同樣一個(gè)專(zhuān)門(mén)用于測(cè)試性能的游戲,在iPhone 4S Safari用HTML5,可以看到畫(huà)面并不是太復(fù)雜,屬于很簡(jiǎn)單的情況;如果把同樣的代碼放到Hybrid的方案里,就顯得很輕松,但是游戲的代碼還是那些,沒(méi)有變。 Hybrid不是天衣無(wú)縫,它有一個(gè)致命的缺點(diǎn)在于,如果用Hybrid升級(jí)包方式使游戲升級(jí)的話(huà)是違反蘋(píng)果的開(kāi)發(fā)者條款的,因?yàn)樘O(píng)果禁止下載可運(yùn)行的腳本,但是這個(gè)事情很多人在偷偷干,所以不太清楚最后這個(gè)政策上的風(fēng)險(xiǎn)會(huì)怎么樣,這是Hybrid方式唯一美中不足的地方。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |