智能手機(jī)越來(lái)越普及使得移動(dòng)應(yīng)用開(kāi)發(fā)成為一個(gè)越來(lái)越大的產(chǎn)業(yè),然而,應(yīng)用開(kāi)發(fā)者不得不面臨一個(gè)相當(dāng)艱難的選擇:到底是該為蘋(píng)果的iPhone、Google的Android開(kāi)發(fā)應(yīng)用還是為Palm Pre、Symbian、黑莓等開(kāi)發(fā)應(yīng)用?
當(dāng)然,如果你有時(shí)間也有足夠的資源而且技術(shù)很全面,你可以分別為每種應(yīng)用開(kāi)發(fā)出不同的版本,如iPhone版、Android版等,或者利用Web技術(shù)開(kāi)發(fā)一個(gè)通用的版本,但這樣開(kāi)發(fā)出來(lái)的應(yīng)用一般不能充分發(fā)揮手機(jī)的性能。
開(kāi)發(fā)平臺(tái)選擇之難
由于色彩絢麗、多媒體應(yīng)用越來(lái)越豐富,使得智能手機(jī)迅速流行開(kāi)來(lái),這給開(kāi)發(fā)人員打開(kāi)了一個(gè)新的領(lǐng)域—移動(dòng)應(yīng)用。不過(guò),擺在開(kāi)發(fā)人員面前的挑戰(zhàn)并不少,比如要掌握新的SDK(軟件開(kāi)發(fā)工具包),而更為困難的是手機(jī)操作系統(tǒng)種類(lèi)繁多,而且缺乏統(tǒng)一的標(biāo)準(zhǔn),這使得開(kāi)發(fā)人員的選擇異常困難,因?yàn)樵谀撤N手機(jī)操作系統(tǒng)上開(kāi)發(fā)的應(yīng)用很難簡(jiǎn)單地移植到其他操作系統(tǒng)平臺(tái)上。
“現(xiàn)在的問(wèn)題是移動(dòng)設(shè)備的操作系統(tǒng)和運(yùn)行平臺(tái)種類(lèi)各不相同。” Eclipse的移動(dòng)工具項(xiàng)目負(fù)責(zé)人、摩托羅拉開(kāi)發(fā)工具架構(gòu)師Christian Kurzke說(shuō),“不同的設(shè)備有不同的開(kāi)發(fā)框架和應(yīng)用框架?!?/P>
即使運(yùn)行同一種操作系統(tǒng)的手機(jī),不同公司的手機(jī)上應(yīng)用的開(kāi)發(fā)方法也可能不同?!拔以贏ndroid手機(jī)上做過(guò)試驗(yàn),我發(fā)現(xiàn)在不同公司的Android手機(jī)上開(kāi)發(fā)應(yīng)用區(qū)別相當(dāng)大?!?iPhoneWebDev社區(qū)的創(chuàng)始人Christopher Allen說(shuō)。
這種不統(tǒng)一還體現(xiàn)在同一廠商的手機(jī)上。例如,Verizon計(jì)劃發(fā)布一個(gè)用來(lái)開(kāi)發(fā)Windows Mobile和BlackBerry應(yīng)用的SDK,這個(gè)SDK針對(duì)Verizon網(wǎng)絡(luò)進(jìn)行了專(zhuān)門(mén)優(yōu)化,能改善使用Verizon網(wǎng)絡(luò)的手機(jī)用戶(hù)的個(gè)人體驗(yàn)。然而,對(duì)開(kāi)發(fā)人員而言,意味著將來(lái)就要為不同的通信網(wǎng)絡(luò)開(kāi)發(fā)應(yīng)用的不同版本。摩托羅拉也計(jì)劃發(fā)布Android手機(jī)的SDK,其中有摩托羅拉特殊的運(yùn)行庫(kù),雖然摩托羅拉聲稱(chēng)也能用這個(gè)SDK開(kāi)發(fā)非摩托羅拉手機(jī)上的應(yīng)用。
另外,一些第三方發(fā)布的通用開(kāi)發(fā)平臺(tái)也讓事情變得更加復(fù)雜。比如,雖然蘋(píng)果發(fā)布了iPhone的SDK,但是開(kāi)發(fā)人員也可以使用第三方的iPhone應(yīng)用開(kāi)發(fā)工具。同樣,RIM有黑莓的SDK,但是除此之外,開(kāi)發(fā)人員也可以使用第三方的開(kāi)發(fā)工具。
HTML 5能改變什么
幸運(yùn)的是,像HTML 5這樣的Web技術(shù)也許能緩解上述問(wèn)題。“HTML 5的確會(huì)給移動(dòng)應(yīng)用的開(kāi)發(fā)帶來(lái)福音,”維基百科基金的軟件開(kāi)發(fā)技術(shù)人員Hampton Catlin說(shuō),這個(gè)規(guī)范提供了很多新的功能,如用于圖像顯示的畫(huà)布功能(Canvas)。
“不再需要用Objective C(iPhone用),也不需要用Java(Android用),從本質(zhì)上說(shuō),你就是在手機(jī)上通過(guò)HTML 5下載一個(gè)非常復(fù)雜Web頁(yè)面。”
Catlin說(shuō),WebKit瀏覽器引擎專(zhuān)門(mén)針對(duì)HTML 5提供了很多的支持,應(yīng)用程序如果使用這個(gè)瀏覽器就能同時(shí)運(yùn)行在iPhone、Palm Pre和Android上,而且開(kāi)發(fā)人員仍然可以使用他們非常熟悉的技術(shù),如CSS、JavaScript等。盡管仍然免不了需要針對(duì)每一種設(shè)備進(jìn)行修改,但是,修改的代碼會(huì)非常少,每個(gè)設(shè)備需要修改的代碼不超過(guò)20行。
Break.com的.Net開(kāi)發(fā)人員Charles Taylor說(shuō),Palm Pre就特別適合采用運(yùn)行基于HTML 5的Web應(yīng)用?!澳菍⑹且粋€(gè)完全不同的世界,iPhone上的應(yīng)用開(kāi)發(fā)將變得和傳統(tǒng)的Mac OS上的應(yīng)用開(kāi)發(fā)一樣簡(jiǎn)單?!?/P>
Google和Palm都宣稱(chēng)它們的手機(jī)支持HTML 5。對(duì)開(kāi)發(fā)人員而言這是好事,會(huì)讓?xiě)?yīng)用的開(kāi)發(fā)更為簡(jiǎn)單,Google和Palm的SDK讓開(kāi)發(fā)人員可以把HTML 5、CSS、JavaScript等功能與手機(jī)專(zhuān)有的功能結(jié)合起來(lái)。
不過(guò),到底是選擇基于HTML 5的方法還是專(zhuān)用SDK,人們需要進(jìn)行權(quán)衡。
“雖然開(kāi)發(fā)iPhone應(yīng)用要復(fù)雜得多,但是在iPhone平臺(tái)上的應(yīng)用也比Palm Pre上的功能更強(qiáng),比如,iPhone就比Palm Pre更容易開(kāi)發(fā)出豐富有趣的游戲來(lái)?!?Taylor說(shuō)。
集成多種技術(shù)
當(dāng)然,還有一種折中的辦法就是采用面向HTML的SDK。Rhomobile Rhodes platform就是這樣的一組工具,用它開(kāi)發(fā)出來(lái)的應(yīng)用可以在多種不同的平臺(tái)上運(yùn)行,包括iPhone、Symbian、Android、Windows Mobile和BlackBerry等。開(kāi)發(fā)人員所做的就是在MVC(model-view-controller)容器和一組HTML模板中寫(xiě)入代碼,這些代碼用HTML和Ruby語(yǔ)言編寫(xiě),最后被編譯成在各種平臺(tái)上運(yùn)行的代碼。
Appcelerator Titanium是與Rhodes近似的另一個(gè)工具,它支持HTML、CSS、JavaScript,利用它提供的API可以為Android和iPhone手機(jī)開(kāi)發(fā)本地應(yīng)用。
“越來(lái)越多的Web技術(shù)被應(yīng)用到移動(dòng)應(yīng)用的開(kāi)發(fā)上,這就讓開(kāi)發(fā)人員原來(lái)掌握的Web技能在開(kāi)發(fā)移動(dòng)應(yīng)用時(shí)也可以發(fā)揮作用,而且應(yīng)用程度在不同平臺(tái)之間遷移也更簡(jiǎn)單了?!敝Z基亞開(kāi)發(fā)社區(qū)論壇的副總裁Purnima Kochikar說(shuō)。
不過(guò),Web應(yīng)用也存在著不足,就是不能充分發(fā)揮手機(jī)的功能。因此,大多數(shù)開(kāi)發(fā)平臺(tái)需要開(kāi)發(fā)人員選擇到底是開(kāi)發(fā)哪種應(yīng)用。比如,你需要選擇是開(kāi)發(fā)在iPhone手機(jī)上的Web應(yīng)用,還是用蘋(píng)果自己的工具開(kāi)發(fā)iPhone手機(jī)的本地應(yīng)用。同樣,RIM有一個(gè)Java開(kāi)發(fā)環(huán)境,你可以用它來(lái)開(kāi)發(fā)基于瀏覽器的應(yīng)用,也可以用它來(lái)開(kāi)發(fā)黑莓應(yīng)用。開(kāi)發(fā)Web應(yīng)用時(shí),開(kāi)發(fā)人員可以利用黑莓SDK中的一些小工具(Widget),這些工具實(shí)際上就是Web應(yīng)用,但是它能訪問(wèn)設(shè)備上的本地應(yīng)用,因此可以在設(shè)備與普通的Web應(yīng)用之間起到橋梁作用。蘋(píng)果的iPhone SDK也有類(lèi)似的功能能讓開(kāi)發(fā)人員把Web應(yīng)用與本地庫(kù)結(jié)合到一起。
Eclipse的計(jì)劃
Eclipse基金已經(jīng)啟動(dòng)了Pulsar計(jì)劃,準(zhǔn)備推出一個(gè)統(tǒng)一的移動(dòng)應(yīng)用開(kāi)發(fā)平臺(tái),但仍然需要不同的SDK,開(kāi)發(fā)人員在為不同品牌的手機(jī)開(kāi)發(fā)應(yīng)用時(shí)會(huì)調(diào)用相應(yīng)的SDK。這個(gè)平臺(tái)主要面向基于Java的“功能手機(jī)”(feature phone,目前市場(chǎng)銷(xiāo)售的大部分是這類(lèi)手機(jī),如LG和三星的很多手機(jī),與智能手機(jī)相比,它們的多媒體功能和應(yīng)用稍微少一些),這就意味著開(kāi)發(fā)人員在開(kāi)發(fā)功能手機(jī)應(yīng)用時(shí)可以一次面向多種不同品牌的手機(jī),重復(fù)勞動(dòng)會(huì)減少很多。
目前,其支持的手機(jī)類(lèi)型包括Android(使用摩托羅拉的SDK)、諾基亞S60系列(使用諾基亞的C++SDK)和黑莓(使用RIM的Java框架),Eclipse計(jì)劃明年能支持基于Symbian的手機(jī)。
但是,也有人對(duì)Eclipse這一計(jì)劃的前景不太樂(lè)觀,認(rèn)為由于不同品牌的手機(jī)在屏幕分辨率、性能和操作系統(tǒng)等方面都有太多的差異,要為不同的平臺(tái)提供一個(gè)統(tǒng)一的開(kāi)發(fā)平臺(tái)是非常困難的。
關(guān)于CNMO | 聯(lián)系我們 | 站點(diǎn)地圖 | 精英招聘 | CNMO記事 | 家長(zhǎng)監(jiān)護(hù)工程 | 舉報(bào)不良信息
Copyright © 2007 -
北京沃德斯瑪特網(wǎng)絡(luò)科技有限責(zé)任公司.All rights reserved 發(fā)郵件給我們
京ICP證-070681號(hào) 京ICP備09081256號(hào) 京公網(wǎng)安備 11010502036320號(hào)