褚玉曉
摘要:目前智能手機和平板電腦等主流智能終端使用的操作系統(tǒng)包括Android、iOS、Windows Phone 等,各類操作系統(tǒng)平臺在開發(fā)語言、開發(fā)工具等方面存在差異,導致應用移植困難、開發(fā)周期長等問題??缙脚_應用開發(fā)技術可以讓開發(fā)者一次開發(fā)應用,運行在多終端平臺下,降低了應用開發(fā)周期和成本,促進移動互聯(lián)網(wǎng)應用產(chǎn)業(yè)鏈快速發(fā)展。本文分析主流跨平臺開發(fā)技術現(xiàn)狀,提出下一代跨平臺開發(fā)構想,并深入探討其實現(xiàn)方案,最后展望其后續(xù)發(fā)展前景。
關鍵詞: 跨平臺 ;開發(fā);應用技術
據(jù)權威機構預測,全球已經(jīng)進入了移動互聯(lián)網(wǎng)發(fā)展周期的早期階段,未來幾年內(nèi),通過移動裝置接入互聯(lián)網(wǎng)的用戶很有可能超過通過桌面?zhèn)€人電腦接入互聯(lián)網(wǎng)的用戶,移動互聯(lián)網(wǎng)的發(fā)展速度將快于傳統(tǒng)互聯(lián)網(wǎng),其創(chuàng)造的利益也會遠遠超過傳統(tǒng)互聯(lián)網(wǎng)。面對這一巨大市場,各大產(chǎn)業(yè)巨頭紛紛構建了移動互聯(lián)網(wǎng)生態(tài)鏈, 以蘋果為代表的App Store 成功創(chuàng)造了移動互聯(lián)網(wǎng)應用商業(yè)模式,激發(fā)了廣大開發(fā)者的智能終端應用創(chuàng)作熱情。
智能終端應用形態(tài)主要分為Web 應用和本地應用兩類,Web 應用是指運行在瀏覽器上的應用形態(tài),本地應用是指直接運行在操作系統(tǒng)之上的應用形態(tài)。Web 應用采用網(wǎng)頁語言開發(fā),具有開發(fā)簡單、跨平臺適配等優(yōu)點,而本地應用一般采用Java、C 等語言開發(fā),具有開發(fā)能力強、交互性好、效率高等優(yōu)點。同時這兩種應用形態(tài)也不斷融合,從而出現(xiàn)了Widget 此類應用形態(tài),可采用網(wǎng)頁語言開發(fā),同時具備本地應用的使用形式,并且可以跨平臺運行?,F(xiàn)階段智能終端應用形態(tài)以本地應用為主,但是Web 應用和Widget應用隨著HTML5 語言的出現(xiàn)以及智能終端多平臺的發(fā)展也展現(xiàn)出良好的發(fā)展勢頭。
一、主流跨平臺開發(fā)技術現(xiàn)狀
前主流的跨終端平臺開發(fā)技術按照其實現(xiàn)方式大致可以分為跨平臺運行引擎和跨平臺應用編譯兩種方式:跨平臺運行引擎技術一般需要在目標設備上安裝一個引擎,用于屏蔽終端底層操作系統(tǒng)差異,開發(fā)者開發(fā)應用部署或編譯打包后,用戶下載到目標設備上由引擎解釋執(zhí)行;跨平臺應用編譯通常采用一種標準開發(fā)語言開發(fā)應用,應用開發(fā)完成后由代碼編譯器針對不同目標終端平臺分別進行編譯,生成有針對性的可執(zhí)行程序。
從支持的開發(fā)語言來看,可以分為應用開發(fā)語言和網(wǎng)頁開發(fā)語言: 開發(fā)者可以采用應用開發(fā)語言(如Java、Delphi 等)開發(fā)應用,應用可以運行在引擎或操作系統(tǒng)上;或者開發(fā)者可以采用網(wǎng)頁開發(fā)語言(如HTML、CSS、JavaScript)開發(fā)應用,應用可以運行在Widget 引擎或操作系統(tǒng)上。這兩類語言的代表如下。
(1)應用開發(fā)語言
此類開發(fā)方式最常見的是Java,基于Java 虛擬機(Java virtual machine,JVM)實現(xiàn)跨平臺開發(fā)。JVM 是一個虛構出來的終端中間件環(huán)境,是通過在實際的終端中間件環(huán)境上仿真模擬各種計算機功能來實現(xiàn)的。Java 虛擬機有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統(tǒng)。JVM 屏蔽了與具體操作系統(tǒng)平臺相關的信息,使得Java 程序只需生成在Java 虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java 虛擬機在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。
目前還有一些開發(fā)工具采用傳統(tǒng)編程語言如Delphi進行開發(fā),代碼編譯生成多平臺下的可執(zhí)行程序,這種開發(fā)方式保留了傳統(tǒng)編程語言的語言能力,同時也保證了可執(zhí)行程序的運行效率,為開發(fā)者提供了一種較優(yōu)的跨平臺開發(fā)選擇。
(2)網(wǎng)頁開發(fā)語言
開發(fā)者可以采用HTML、CSS 和JavaScript 語言開發(fā)Web 應用,由瀏覽器實現(xiàn)跨平臺的適配性。由于瀏覽器調(diào)用終端系統(tǒng)API 能力較弱,因此出現(xiàn)了Widget引擎的跨平臺實現(xiàn)方式,利用JavaScript 語言封裝終端系統(tǒng)API 能力,向開發(fā)者提供統(tǒng)一接口。但是Web 應用和Widget 應用都受制于網(wǎng)頁開發(fā)語言的限制,因此在展現(xiàn)效果和調(diào)用能力上都存在一定的缺陷,目前下一代網(wǎng)頁開發(fā)語言HTML5 有希望彌補這一缺陷,縮小Web 應用/Widget 應用和本地應用的差距。
比較以上兩類開發(fā)語言,網(wǎng)頁開發(fā)語言存在能力受限(大代碼量、復雜圖形和動畫支持)、解釋執(zhí)行效率較低的問題,應用開發(fā)語言存在支持的平臺數(shù)量少、適配性差的問題。隨著HTML5 標準的出現(xiàn),網(wǎng)頁開發(fā)語言在多媒體、3D 圖形、終端能力調(diào)用等方面的能力大大提升,并且其開發(fā)門檻低,越來越受到移動互聯(lián)網(wǎng)開發(fā)者的青睞,因此以下將主要圍繞網(wǎng)頁開發(fā)語言構想下一代跨平臺開發(fā)工具。
二、下一代跨平臺開發(fā)構想
分析目前業(yè)界的跨平臺應用開發(fā)現(xiàn)狀,其實現(xiàn)方式多樣,各有優(yōu)缺點,無法完全滿足開發(fā)者多樣化跨平臺開發(fā)需求??紤]到終端應用形態(tài)的多樣性,希望構想一種網(wǎng)頁開發(fā)語言的融合多態(tài)的跨平臺開發(fā)工具,既可以支持跨平臺運行引擎也可以支持跨平臺編譯的方式, 具體來說,下一代跨平臺開發(fā)工具有以下特點。
(1)統(tǒng)一的跨平臺開發(fā)語言
開發(fā)者希望能夠通過統(tǒng)一的標準開發(fā)語言(HTML、CSS、JavaScript)來進行不同平臺下的應用開發(fā),從而減少代碼的重復編寫,免去不同語言的學習熟悉過程。
(2)統(tǒng)一的跨平臺系統(tǒng)API 編程接口
不同智能操作系統(tǒng)的API 封裝形式不同,傳統(tǒng)開發(fā)者在跨平臺移植過程必須重新學習新平臺的API 編程指南,重寫API 相關程序代碼,增加了跨平臺應用移植的時間。因此跨平臺開發(fā)的開發(fā)者希望能夠使用通用標準API(JavaScript 封裝)開發(fā)應用,無需重新適配不同平臺API。
(3)自動化的跨平臺測試和仿真環(huán)境
跨平臺開發(fā)者希望能夠采用編寫測試腳本,針對已經(jīng)完成調(diào)試的應用程序進行跨平臺的自動化測試,輸出測試結果,驗證應用在跨平臺終端上運行的功能完備性、界面適配性和系統(tǒng)可靠性,可以仿真不同平臺的終端環(huán)境,便捷地調(diào)試應用程序,減少應用調(diào)試的時間和成本。
三、下一代跨平臺開發(fā)環(huán)境實現(xiàn)方案
依據(jù)以上跨平臺開發(fā)構想搭建一套融合多態(tài)的跨平臺開發(fā)環(huán)境,可以融合目前跨平臺運行引擎和跨平臺應用編譯的優(yōu)點,由開發(fā)者選擇合適的開發(fā)工具基于Web 語言開發(fā)??紤]到以上需求,設計集成開發(fā)環(huán)境可以包括遠程開發(fā)環(huán)境和本地開發(fā)環(huán)境兩部分。
可視化代碼框架為開發(fā)者提供UI 設計工具,提供常用的頁面控件,如列表、文本輸入框、靜態(tài)文本、單選框、復選框、組合框、翻頁按鈕、按鈕等,并可以將UI 控件與控件對應的背景色、圖片、風格關聯(lián)起來。例如,新生成一個Widget 應用時,SCE 提供應用啟動時的事件、應用獲取焦點時的事件、應用退出時的事件等代碼框架。對一個按鈕對象,提供按鈕按下時的事件等。
API 插件庫為開發(fā)者提供ECMA Script、Ajax、Dom、Widget API 以及多平臺的插件參考庫,開發(fā)者可隨時查詢API 和調(diào)用方法。同時,在編輯代碼時,代碼編輯器可根據(jù)用戶輸入實時提示用戶可調(diào)用的API 方法,如用戶輸入類名時,代碼編輯器可提示用戶下一步可輸入open Url、set Preference For Key、on Focus 等。
四、發(fā)展展望
回顧傳統(tǒng)PC、服務器操作系統(tǒng)的發(fā)展歷程,跨平臺開發(fā)是開發(fā)者追求的終極目標,跨平臺開發(fā)技術作為產(chǎn)業(yè)鏈發(fā)展過程中的關鍵一環(huán),始終是開發(fā)技術研究的熱點和難點。同樣隨著智能終端平臺的發(fā)展,目前已經(jīng)基本形成了幾個主要陣營,舊操作系統(tǒng)版本更新和新操作系統(tǒng)進入是智能終端平臺不變的主題,智能終端跨平臺開發(fā)技術還處于起步階段,對其進行深入研究符合產(chǎn)業(yè)發(fā)展要求,也是國內(nèi)軟件業(yè)可能占據(jù)的一個技術高點。
本文中提到的基于Web語言的下一代跨平臺開發(fā)工具雖然在圖形適配、運行效率、在線編譯等方面還存在一些技術難點,需要業(yè)界力量進一步研究,但是其構想是一種有益的探索。在跨平臺開發(fā)技術上降低開發(fā)者門檻和開發(fā)能力及效率是互相制約的兩個方面,需要在其中找一個平衡點,保證跨平臺開發(fā)技術能夠接近操作系統(tǒng)原生態(tài)開發(fā)能力并減少對開發(fā)者的要求。
在當前移動互聯(lián)網(wǎng)產(chǎn)業(yè)結構下,人人都是開發(fā)者,都可以基于其奇思妙想構建應用,應用開發(fā)技術不應該成為廣大草根開發(fā)者進入這一領域的障礙,為此類人群提供以上構想的跨平臺開發(fā)工具,將成為移動互聯(lián)網(wǎng)應用開發(fā)的助推器。隨著軟件技術的發(fā)展,特別在HTML5技術出現(xiàn)后,網(wǎng)頁類應用語言能力逐步提升,將成為跨平臺應用開發(fā)的主力,廣大開發(fā)人群青睞的網(wǎng)頁類應用開發(fā)工具將成為移動互聯(lián)網(wǎng)應用開發(fā)產(chǎn)業(yè)鏈中不可或缺的一個環(huán)節(jié),擁有良好的發(fā)展前景。
參考文獻:
[1] 陳樺,杜啟宏,程剛. 移動智能終端Web應用平臺開發(fā)技術研究[J]. 移動通信, 2013(5): 23-26.
[2] 楊曉華,程寶平,朱春梅. Mobile Widget—新一代移動互聯(lián)網(wǎng)應用技術[J]. 電信技術, 2011(2): 30-34.
[3] 劉春華. 基于HTML5的移動互聯(lián)網(wǎng)應用發(fā)展趨勢[J]. 移動通信, 2013(9): 64-68.
[4] 胡世良. 移動互聯(lián)網(wǎng)軟硬一體化商業(yè)模式探析[J]. 移動通信, 2013(9): 56-59.
基金項目:
河南省科技廳2015年重點科技攻關項目(152102210133)資助