1.前言
據(jù)權(quán)威機(jī)構(gòu)預(yù)測,全球已經(jīng)進(jìn)入了移動(dòng)互聯(lián)網(wǎng)發(fā)展周期的早期階段,未來幾年內(nèi),通過移動(dòng)裝置接入互聯(lián)網(wǎng)的用戶很有可能超過通過桌面?zhèn)人電腦接入互聯(lián)網(wǎng)的用戶,移動(dòng)互聯(lián)網(wǎng)的發(fā)展速度將快于傳統(tǒng)互聯(lián)網(wǎng),其創(chuàng)造的利益也會(huì)遠(yuǎn)遠(yuǎn)超過傳統(tǒng)互聯(lián)網(wǎng)。面對(duì)這一巨大市場,各大產(chǎn)業(yè)巨頭紛紛構(gòu)建了移動(dòng)互聯(lián)網(wǎng)生態(tài)鏈, 以蘋果為代表的AppStore 成功創(chuàng)造了移動(dòng)互聯(lián)網(wǎng)應(yīng)用商業(yè)模式,激發(fā)了廣大開發(fā)者的智能終端應(yīng)用創(chuàng)作熱情。
智能終端應(yīng)用形態(tài)主要分為Web 應(yīng)用和本地應(yīng)用兩類,Web 應(yīng)用是指運(yùn)行在瀏覽器上的應(yīng)用形態(tài),本地應(yīng)用是指直接運(yùn)行在操作系統(tǒng)之上的應(yīng)用形態(tài)。Web 應(yīng)用采用網(wǎng)頁語言開發(fā),具有開發(fā)簡單、跨平臺(tái)適配等優(yōu)點(diǎn),而本地應(yīng)用一般采用Java、C 等語言開發(fā),具有開發(fā)能力強(qiáng)、交互性好、效率高等優(yōu)點(diǎn)。同時(shí)這兩種應(yīng)用形態(tài)也不斷融合,從而出現(xiàn)了Widget 此類應(yīng)用形態(tài),可采用網(wǎng)頁語言開發(fā),同時(shí)具備本地應(yīng)用的使用形式,并且可以跨平臺(tái)運(yùn)行。現(xiàn)階段智能終端應(yīng)用形態(tài)以本地應(yīng)用為主,但是Web 應(yīng)用和Widget應(yīng)用隨著HTML5 語言的出現(xiàn)以及智能終端多平臺(tái)的發(fā)展也展現(xiàn)出良好的發(fā)展勢(shì)頭。
智能終端應(yīng)用開發(fā)技術(shù)作為移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈上的關(guān)鍵環(huán)節(jié),其關(guān)鍵技術(shù)的突破對(duì)于整個(gè)產(chǎn)業(yè)鏈健康快速發(fā)展具有重要意義。目前,智能終端應(yīng)用開發(fā)技術(shù)基本都是針對(duì)具體操作系統(tǒng)平臺(tái)提供針對(duì)性的開發(fā)語言和工具進(jìn)行開發(fā),開發(fā)者開發(fā)完成一款終端應(yīng)用后,需要花費(fèi)大量的時(shí)間和精力進(jìn)行跨平臺(tái)的移植工作,導(dǎo)致應(yīng)用開發(fā)周期長、開發(fā)門檻高的問題。因此有必要提供一種可以跨平臺(tái)的開發(fā)技術(shù),能夠保證開發(fā)者基于某種開發(fā)語言或開發(fā)工具,一次性編寫代碼即可生成可以運(yùn)行在多種類型終端平臺(tái)上的應(yīng)用程序,盡量減少針對(duì)不同的終端平臺(tái)進(jìn)行的二次開發(fā)和適配工作。
2.主流跨平臺(tái)開發(fā)技術(shù)現(xiàn)狀
目前主流的跨終端平臺(tái)開發(fā)技術(shù)按照其實(shí)現(xiàn)方式大致可以分為跨平臺(tái)運(yùn)行引擎和跨平臺(tái)應(yīng)用編譯兩種方式:
跨平臺(tái)運(yùn)行引擎技術(shù)一般需要在目標(biāo)設(shè)備上安裝一個(gè)引擎,用于屏蔽終端底層操作系統(tǒng)差異,開發(fā)者開發(fā)應(yīng)用部署或編譯打包后,用戶下載到目標(biāo)設(shè)備上由引擎解釋執(zhí)行;跨平臺(tái)應(yīng)用編譯通常采用一種標(biāo)準(zhǔn)開發(fā)語言開發(fā)應(yīng)用,應(yīng)用開發(fā)完成后由代碼編譯器針對(duì)不同目標(biāo)終端平臺(tái)分別進(jìn)行編譯,生成有針對(duì)性的可執(zhí)行程序。
從支持的開發(fā)語言來看,可以分為應(yīng)用開發(fā)語言和網(wǎng)頁開發(fā)語言: 開發(fā)者可以采用應(yīng)用開發(fā)語言(如Java、Delphi 等)開發(fā)應(yīng)用,應(yīng)用可以運(yùn)行在引擎或操作系統(tǒng)上;或者開發(fā)者可以采用網(wǎng)頁開發(fā)語言(如HTML、CSS、JavaScript)開發(fā)應(yīng)用,應(yīng)用可以運(yùn)行在Widget 引擎或操作系統(tǒng)上。這兩類語言的代表如下。
(1)應(yīng)用開發(fā)語言
此類開發(fā)方式最常見的是Java,基于Java 虛擬機(jī)(Java virtual machine,JVM)實(shí)現(xiàn)跨平臺(tái)開發(fā)。JVM 是一個(gè)虛構(gòu)出來的終端中間件環(huán)境,是通過在實(shí)際的終端中間件環(huán)境上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。Java 虛擬機(jī)有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM 屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java 程序只需生成在Java 虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。Java 虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),實(shí)際上最終還是把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。
目前還有一些開發(fā)工具采用傳統(tǒng)編程語言如Delphi進(jìn)行開發(fā),代碼編譯生成多平臺(tái)下的可執(zhí)行程序,這種開發(fā)方式保留了傳統(tǒng)編程語言的語言能力,同時(shí)也保證了可執(zhí)行程序的運(yùn)行效率,為開發(fā)者提供了一種較優(yōu)的跨平臺(tái)開發(fā)選擇。
(2)網(wǎng)頁開發(fā)語言
開發(fā)者可以采用HTML、CSS 和JavaScript 語言開發(fā)Web 應(yīng)用,由瀏覽器實(shí)現(xiàn)跨平臺(tái)的適配性。由于瀏覽器調(diào)用終端系統(tǒng)API 能力較弱,因此出現(xiàn)了Widget引擎的跨平臺(tái)實(shí)現(xiàn)方式,利用JavaScript 語言封裝終端系統(tǒng)API 能力,向開發(fā)者提供統(tǒng)一接口。但是Web 應(yīng)用和Widget 應(yīng)用都受制于網(wǎng)頁開發(fā)語言的限制,因此在展現(xiàn)效果和調(diào)用能力上都存在一定的缺陷,目前下一代網(wǎng)頁開發(fā)語言HTML5 有希望彌補(bǔ)這一缺陷,縮小Web 應(yīng)用/Widget 應(yīng)用和本地應(yīng)用的差距。
跨平臺(tái)應(yīng)用編譯目前常見的實(shí)現(xiàn)方式是各類Web 應(yīng)用開發(fā)工具,開發(fā)者采用Web 語言編寫代碼,由Web 應(yīng)用開發(fā)工具為不同智能手機(jī)操作系統(tǒng)平臺(tái)分別編譯生成針對(duì)具體平臺(tái)的應(yīng)用程序, 比如目前常見的PhoneGap、Titanium 開發(fā)平臺(tái)。具體到PhoneGap 來看,PhoneGap 是一個(gè)基于HTML、CSS 和JavaScript 的,創(chuàng)建移動(dòng)跨平臺(tái)移動(dòng)應(yīng)用程序的快速開發(fā)工具。其采用W3C 標(biāo)準(zhǔn), 使用JavaScript 語言封裝終端系統(tǒng)API,使開發(fā)者能夠調(diào)用主流智能手機(jī)的核心功能,包括地理定位、加速器、聯(lián)系人、聲音和振動(dòng)等。這類開發(fā)方式無需依賴終端側(cè)引擎,編譯后的應(yīng)用程序直接運(yùn)行在終端操作系統(tǒng)上,與本地應(yīng)用在形式和使用方式上沒有任何區(qū)別,但是其開發(fā)能力同樣受制于網(wǎng)頁開發(fā)語言的限制, 目前PhoneGap 也已經(jīng)支持HTML5 標(biāo)準(zhǔn)。
比較以上兩類開發(fā)語言,網(wǎng)頁開發(fā)語言存在能力受限(大代碼量、復(fù)雜圖形和動(dòng)畫支持)、解釋執(zhí)行效率較低的問題,應(yīng)用開發(fā)語言存在支持的平臺(tái)數(shù)量少、適配性差的問題。隨著HTML5 標(biāo)準(zhǔn)的出現(xiàn),網(wǎng)頁開發(fā)語言在多媒體、3D 圖形、終端能力調(diào)用等方面的能力大大提升,并且其開發(fā)門檻低,越來越受到移動(dòng)互聯(lián)網(wǎng)開發(fā)者的青睞,因此以下將主要圍繞網(wǎng)頁開發(fā)語言構(gòu)想下一代跨平臺(tái)開發(fā)工具。
3.下一代跨平臺(tái)開發(fā)構(gòu)想
分析目前業(yè)界的跨平臺(tái)應(yīng)用開發(fā)現(xiàn)狀,其實(shí)現(xiàn)方式多樣,各有優(yōu)缺點(diǎn),無法完全滿足開發(fā)者多樣化跨平臺(tái)開發(fā)需求。考慮到終端應(yīng)用形態(tài)的多樣性,希望構(gòu)想一種網(wǎng)頁開發(fā)語言的融合多態(tài)的跨平臺(tái)開發(fā)工具,既可以支持跨平臺(tái)運(yùn)行引擎也可以支持跨平臺(tái)編譯的方式, 具體來說,下一代跨平臺(tái)開發(fā)工具有以下特點(diǎn)。
(1)統(tǒng)一的跨平臺(tái)開發(fā)語言
開發(fā)者希望能夠通過統(tǒng)一的標(biāo)準(zhǔn)開發(fā)語言(HTML、CSS、JavaScript)來進(jìn)行不同平臺(tái)下的應(yīng)用開發(fā),從而減少代碼的重復(fù)編寫,免去不同語言的學(xué)習(xí)熟悉過程。
(2)統(tǒng)一的跨平臺(tái)系統(tǒng)API 編程接口
不同智能操作系統(tǒng)的API 封裝形式不同,傳統(tǒng)開發(fā)者在跨平臺(tái)移植過程必須重新學(xué)習(xí)新平臺(tái)的API 編程指南,重寫API 相關(guān)程序代碼,增加了跨平臺(tái)應(yīng)用移植的時(shí)間。因此跨平臺(tái)開發(fā)的開發(fā)者希望能夠使用通用標(biāo)準(zhǔn)API(JavaScript 封裝)開發(fā)應(yīng)用,無需重新適配不同平臺(tái)API。
(3)統(tǒng)一的跨平臺(tái)開發(fā)環(huán)境
跨平臺(tái)開發(fā)者希望能夠基于一個(gè)自己熟悉的開發(fā)環(huán)境進(jìn)行開發(fā),無需針對(duì)不同平臺(tái)重新下載、安裝全新的開發(fā)環(huán)境,無需重新學(xué)習(xí)不同開發(fā)環(huán)境的使用方式和操作流程。
(4)豐富的代碼框架和工具庫
跨平臺(tái)開發(fā)者希望可以參考或直接使用已經(jīng)在多平臺(tái)下驗(yàn)證過的代碼框架和工具庫,增加界面的標(biāo)準(zhǔn)性和美觀性,減少重復(fù)的開發(fā)量,縮短應(yīng)用開發(fā)的時(shí)間。
(5)自動(dòng)化的跨平臺(tái)測試和仿真環(huán)境
跨平臺(tái)開發(fā)者希望能夠采用編寫測試腳本,針對(duì)已經(jīng)完成調(diào)試的應(yīng)用程序進(jìn)行跨平臺(tái)的自動(dòng)化測試,輸出測試結(jié)果,驗(yàn)證應(yīng)用在跨平臺(tái)終端上運(yùn)行的功能完備性、界面適配性和系統(tǒng)可靠性,可以仿真不同平臺(tái)的終端環(huán)境,便捷地調(diào)試應(yīng)用程序,減少應(yīng)用調(diào)試的時(shí)間和成本。
(6)跨平臺(tái)的打包編譯工具
開發(fā)者利用網(wǎng)頁開發(fā)語言開發(fā)的代碼可以本地/遠(yuǎn)程打包生成引擎解釋執(zhí)行的應(yīng)用包, 也可以本地/遠(yuǎn)程編譯生成多平臺(tái)下的安裝包。
(7)支持不同終端生態(tài)環(huán)境
可以支持Android、iOS、Windows Phone、瀏覽器、Widget 運(yùn)行引擎等主流操作系統(tǒng)、運(yùn)行環(huán)境和分辨率,開發(fā)者一次開發(fā)可以運(yùn)行在以上生態(tài)環(huán)境中。
4.下一代跨平臺(tái)開發(fā)環(huán)境實(shí)現(xiàn)方案
依據(jù)以上跨平臺(tái)開發(fā)構(gòu)想搭建一套融合多態(tài)的跨平臺(tái)開發(fā)環(huán)境,可以融合目前跨平臺(tái)運(yùn)行引擎和跨平臺(tái)應(yīng)用編譯的優(yōu)點(diǎn),由開發(fā)者選擇合適的開發(fā)工具基于Web 語言開發(fā)。考慮到以上需求,設(shè)計(jì)集成開發(fā)環(huán)境可以包括遠(yuǎn)程開發(fā)環(huán)境和本地開發(fā)環(huán)境兩部分,功能架構(gòu)如圖1所示。
圖1 集成開發(fā)環(huán)境功能架構(gòu)
本地開發(fā)環(huán)境包括以下功能模塊。
(1)基礎(chǔ)開發(fā)構(gòu)件
開發(fā)者安裝和配置好開發(fā)環(huán)境后,可直接在集成的基礎(chǔ)開發(fā)構(gòu)件中編寫應(yīng)用代碼,至少應(yīng)包括以下幾個(gè)區(qū)。
·工程顯示區(qū):顯示所有打開的工程、工程目錄和工程中的文件。
·代碼編輯區(qū):支持多個(gè)代碼文檔的編輯。
·調(diào)試信息顯示區(qū)。
·代碼文檔大綱/概要顯示區(qū)。
(2)可視化代碼框架
為開發(fā)者提供UI 設(shè)計(jì)工具,提供常用的頁面控件,如列表、文本輸入框、靜態(tài)文本、單選框、復(fù)選框、組合框、翻頁按鈕、按鈕等,并可以將UI 控件與控件對(duì)應(yīng)的背景色、圖片、風(fēng)格關(guān)聯(lián)起來。例如,新生成一個(gè)Widget 應(yīng)用時(shí),SCE 提供應(yīng)用啟動(dòng)時(shí)的事件、應(yīng)用獲取焦點(diǎn)時(shí)的事件、應(yīng)用退出時(shí)的事件等代碼框架。對(duì)一個(gè)按鈕對(duì)象,提供按鈕按下時(shí)的事件等。
(3)API 插件庫
離線開發(fā)環(huán)境為開發(fā)者提供ECMA Script、Ajax、Dom、Widget API 以及多平臺(tái)的插件參考庫,開發(fā)者可隨時(shí)查詢API 和調(diào)用方法。同時(shí),在編輯代碼時(shí),代碼編輯器可根據(jù)用戶輸入實(shí)時(shí)提示用戶可調(diào)用的API 方法,如用戶輸入類名時(shí),代碼編輯器可提示用戶下一步可輸入openUrl、setPreferenceForKey、onFocus 等。
(4)調(diào)試工具
對(duì)代碼中的語法錯(cuò)誤進(jìn)行及時(shí)提示,以顯著顏色或提示符告知用戶。開發(fā)者可在代碼中設(shè)置斷點(diǎn),對(duì)代碼進(jìn)行單步調(diào)測,以精確定位代碼錯(cuò)誤位置和錯(cuò)誤原因。
(5)離線測試工具
為開發(fā)者提供離線效果查看功能,可借助模擬器查看應(yīng)用的運(yùn)行效果。
(6)編譯打包工具
完成應(yīng)用開發(fā)后,開發(fā)者可根據(jù)需要通過離線開發(fā)環(huán)境提供的工具打包生成Widget 應(yīng)用(采用跨平臺(tái)引擎運(yùn)行方式),或者編譯生成本地應(yīng)用(采用跨平臺(tái)編譯方式)。
(7)終端模板庫
包括智能終端類型,如智能手機(jī)、平板電腦等;終端型號(hào);屏幕分辨率,如240×400 等。終端設(shè)備的選擇決定了應(yīng)用可調(diào)用的本地設(shè)備能力集、使用方式(鍵盤操作還是觸摸屏)、可顯示的區(qū)域(屏幕大。
遠(yuǎn)程開發(fā)環(huán)境包括以下功能模塊。
(1)基礎(chǔ)開發(fā)構(gòu)件管理
對(duì)開發(fā)者下載的基礎(chǔ)開發(fā)構(gòu)件進(jìn)行管理, 維護(hù)其下載、升級(jí)操作。
(2)插件/框架
對(duì)開發(fā)者下載的插件和框架進(jìn)行管理, 維護(hù)其下載、升級(jí)操作。
(3)在線開發(fā)工具
為開發(fā)者提供一種基于瀏覽器的開發(fā)方式,開發(fā)者通過簡單拖拽可以生成內(nèi)容類應(yīng)用。
(4)在線打包編譯工具
為開發(fā)者提供一種遠(yuǎn)程在線打包編譯的方式,開發(fā)者在應(yīng)用開發(fā)時(shí)可以無需關(guān)心設(shè)備類型和型號(hào),完成開發(fā)后將代碼工程上傳到遠(yuǎn)程開發(fā)環(huán)境后,選擇相應(yīng)設(shè)備類型和型號(hào)再進(jìn)行編譯打包。
(5)真機(jī)測試環(huán)境
為開發(fā)者搭建的一套可以分時(shí)復(fù)用的真機(jī)池,開發(fā)者可以遠(yuǎn)程選擇相應(yīng)型號(hào)的設(shè)備進(jìn)行真機(jī)測試。
(6)終端模板庫管理對(duì)平臺(tái)可以支持的終端模板進(jìn)行管理和更新。
5.發(fā)展展望
回顧傳統(tǒng)PC、服務(wù)器操作系統(tǒng)的發(fā)展歷程,跨平臺(tái)開發(fā)是開發(fā)者追求的終極目標(biāo),跨平臺(tái)開發(fā)技術(shù)作為產(chǎn)業(yè)鏈發(fā)展過程中的關(guān)鍵一環(huán),始終是開發(fā)技術(shù)研究的熱點(diǎn)和難點(diǎn)。同樣隨著智能終端平臺(tái)的發(fā)展,目前已經(jīng)基本形成了幾個(gè)主要陣營,舊操作系統(tǒng)版本更新和新操作系統(tǒng)進(jìn)入是智能終端平臺(tái)不變的主題,智能終端跨平臺(tái)開發(fā)技術(shù)還處于起步階段,對(duì)其進(jìn)行深入研究符合產(chǎn)業(yè)發(fā)展要求,也是國內(nèi)軟件業(yè)可能占據(jù)的一個(gè)技術(shù)高點(diǎn)。
本文中提到的基于Web語言的下一代跨平臺(tái)開發(fā)工具雖然在圖形適配、運(yùn)行效率、在線編譯等方面還存在一些技術(shù)難點(diǎn),需要業(yè)界力量進(jìn)一步研究,但是其構(gòu)想是一種有益的探索。在跨平臺(tái)開發(fā)技術(shù)上降低開發(fā)者門檻和開發(fā)能力及效率是互相制約的兩個(gè)方面,需要在其中找一個(gè)平衡點(diǎn),保證跨平臺(tái)開發(fā)技術(shù)能夠接近操作系統(tǒng)原生態(tài)開發(fā)能力并減少對(duì)開發(fā)者的要求。
在當(dāng)前移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)結(jié)構(gòu)下,人人都是開發(fā)者,都可以基于其奇思妙想構(gòu)建應(yīng)用,應(yīng)用開發(fā)技術(shù)不應(yīng)該成為廣大草根開發(fā)者進(jìn)入這一領(lǐng)域的障礙,為此類人群提供以上構(gòu)想的跨平臺(tái)開發(fā)工具,將成為移動(dòng)互聯(lián)網(wǎng)應(yīng)用開發(fā)的助推器。隨著軟件技術(shù)的發(fā)展,特別在HTML5技術(shù)出現(xiàn)后,網(wǎng)頁類應(yīng)用語言能力逐步提升,將成為跨平臺(tái)應(yīng)用開發(fā)的主力,廣大開發(fā)人群青睞的網(wǎng)頁類應(yīng)用開發(fā)工具將成為移動(dòng)互聯(lián)網(wǎng)應(yīng)用開發(fā)產(chǎn)業(yè)鏈中不可或缺的一個(gè)環(huán)節(jié),擁有良好的發(fā)展前景。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:智能終端跨平臺(tái)應(yīng)用開發(fā)技術(shù)研究
本文網(wǎng)址:http://www.oesoe.com/html/support/11121512337.html