在手機(jī)應(yīng)用軟件開(kāi)發(fā)方面,開(kāi)發(fā)者不得不在不同的手機(jī)操作系統(tǒng)中做出艱難的選擇,為不同的手機(jī)平臺(tái)單獨(dú)開(kāi)發(fā)軟件。有哪些技術(shù)可以解決跨平臺(tái)手機(jī)軟件開(kāi)發(fā)的問(wèn)題? 隨著蘋(píng)果手機(jī)應(yīng)用商店的成功,中移動(dòng)、電信和聯(lián)通也紛紛推出自己的手機(jī)應(yīng)用商城,51CTO曾多次報(bào)道《中國(guó)三大電信運(yùn)營(yíng)商轉(zhuǎn)戰(zhàn)“軟件商店”》的消息。可以說(shuō),進(jìn)行手機(jī)應(yīng)用軟件開(kāi)發(fā)已成為一個(gè)潮流。但有一個(gè)問(wèn)題一直困擾著廣大開(kāi)發(fā)人員:作為一名開(kāi)發(fā)者,開(kāi)發(fā)支持多個(gè)手機(jī)平臺(tái)(沒(méi)有一個(gè)絕對(duì)領(lǐng)先者、需要漫長(zhǎng)的學(xué)習(xí)過(guò)程)的軟件需要高昂的成本。終于,這一問(wèn)題有望得到解決。 開(kāi)端 當(dāng)手持電腦剛步入主流的時(shí)候,開(kāi)發(fā)者只有一個(gè)選擇:Palm Pilot。僅僅過(guò)了五年,他們又不得不考慮塞班和Pocket PC (亦即后來(lái)的Windows Mobile)。截至2009年,已經(jīng)至少有八個(gè)智能手機(jī)平臺(tái):兩個(gè)Windows Mobile版本,兩個(gè)黑莓版本, iPhone,Android,塞班,和webOS,更別提那些運(yùn)行Java程序的傳統(tǒng)功能手機(jī)。 影響 開(kāi)發(fā)者不得不在操作系統(tǒng)中做出艱難的選擇。更要命的是用戶越來(lái)越分散,呼吁不同版本的軟件,沒(méi)有一個(gè)操作系統(tǒng)絕對(duì)領(lǐng)先。直到幾個(gè)月前,他們還只有一個(gè)選擇:為不同的手機(jī)平臺(tái)單獨(dú)開(kāi)發(fā)軟件,選擇支持哪些平臺(tái),花費(fèi)巨額費(fèi)用,而得到的回報(bào)是一個(gè)未知數(shù)。 但是,這一問(wèn)題正在發(fā)生變化。開(kāi)發(fā)者有三個(gè)辦法可以實(shí)現(xiàn)跨平臺(tái)開(kāi)發(fā)。技術(shù)雖然尚不成熟,但進(jìn)展會(huì)很快。 HTML 5和手機(jī)網(wǎng) 第一個(gè)選擇就是開(kāi)發(fā)手機(jī)網(wǎng)頁(yè)版軟件。可以訪問(wèn)本地數(shù)據(jù)庫(kù)的HTML 5讓這一點(diǎn)成為可能。目前的問(wèn)題有兩個(gè):第一,HTML 5的普及性;第二,用戶是否愿意把HTML 5當(dāng)成一種標(biāo)準(zhǔn)。第一個(gè)問(wèn)題可以通過(guò)時(shí)間和來(lái)自其它操作系統(tǒng)平臺(tái)的壓力得以解決,而第二個(gè)問(wèn)題是個(gè)大問(wèn)題,用戶接受網(wǎng)頁(yè)版軟件需要一個(gè)心理變化過(guò)程。 Flash Adobe最近宣布進(jìn)軍移動(dòng)領(lǐng)域,推出了支持大部分平臺(tái)的Flash瀏覽器,以及一個(gè)“Flash到iPhone軟件”編譯器。這樣,開(kāi)發(fā)者只需在flash里編寫(xiě)所有軟件,然后通過(guò)編譯軟件在多種手機(jī)瀏覽器上部署就可以了。 這也面臨著HTML 5的問(wèn)題,因?yàn)橛脩艚邮茉跒g覽器內(nèi)運(yùn)行軟件需要一個(gè)適應(yīng)過(guò)程。此外,蘋(píng)果反對(duì)在瀏覽器中使用Flash的強(qiáng)硬立場(chǎng)也是一個(gè)巨大障礙,因?yàn)樾枰獌蓚(gè)完全不同的創(chuàng)建過(guò)程。 要想Flash得到普及,操作系統(tǒng)廠家不得不對(duì)網(wǎng)頁(yè)版軟件和非網(wǎng)頁(yè)版軟件一視同仁。 JavaScript和本地軟件 有一類(lèi)新的軟件正在崛起,這些本地軟件針對(duì)特定平臺(tái)匯編,但使用用戶界面的網(wǎng)頁(yè)技術(shù)。這種方法潛力最大。最著名的要算PhoneGap。其它同類(lèi)軟件還包括Appcelerator和Rhomobile(使用Ruby on Rails網(wǎng)頁(yè)語(yǔ)言)。 這些開(kāi)源技術(shù)都允許開(kāi)發(fā)者使用本地代碼編寫(xiě)后臺(tái)過(guò)程,然后利用HTML,CSS和JavaScript開(kāi)發(fā)用戶界面,然后把該軟件編譯成本地軟件,然后上傳到軟件商店,通過(guò)下載安裝進(jìn)行發(fā)布。 但是手機(jī)開(kāi)發(fā)的最大問(wèn)題不是后端。所有平臺(tái)的骨干部分都基于C或Java,問(wèn)題在于開(kāi)發(fā)用戶界面需要深入了解各種手機(jī)。跨平臺(tái)界面開(kāi)發(fā)技術(shù)解決了大部分此類(lèi)問(wèn)題。該技術(shù)的唯一不足就是跨平臺(tái)軟件看上去不那么“本地化”,需要高超的設(shè)計(jì)和CSS技巧。 結(jié)論 隨著智能手機(jī)行業(yè)的不斷發(fā)展,我們很難看到一個(gè)絕對(duì)領(lǐng)先者(不同于PC領(lǐng)域),因而,開(kāi)發(fā)者不得不針對(duì)多種平臺(tái)開(kāi)發(fā)軟件。但是,現(xiàn)在有了跨平臺(tái)開(kāi)發(fā)技術(shù),開(kāi)發(fā)者可以大大降低開(kāi)發(fā)成本,縮短學(xué)習(xí)過(guò)程。 這些技術(shù)目前處于早期階段,但這是大勢(shì)所趨。Flash,HTML 5和JavaScript將讓“一次編寫(xiě),處處通用”變?yōu)楝F(xiàn)實(shí);屆時(shí),跨平臺(tái)的手機(jī)應(yīng)用軟件開(kāi)發(fā)將成為現(xiàn)實(shí)。 |