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