李 輝
?
基于混合模式的移動(dòng)應(yīng)用開(kāi)發(fā)研究
李 輝
河南省濮陽(yáng)市柳屯鎮(zhèn)中原油田天然氣產(chǎn)銷廠信息管理站,河南 濮陽(yáng) 457000
隨著移動(dòng)互聯(lián)網(wǎng)的大規(guī)模普及,移動(dòng)端應(yīng)用的開(kāi)發(fā)也被提至重要地位,目前常見(jiàn)的移動(dòng)APP包括三種類型:Native APP、Web App、Hybrid App,它們的開(kāi)發(fā)模式分別為原生開(kāi)發(fā)模式、WEB開(kāi)發(fā)模式和混合開(kāi)發(fā)模式,其中混合開(kāi)發(fā)模式融合了原生開(kāi)發(fā)模式和WEB開(kāi)發(fā)模式,兼具了兩種開(kāi)發(fā)模式的優(yōu)勢(shì),成為目前最主要的移動(dòng)應(yīng)用開(kāi)發(fā)模式,將在對(duì)比三種移動(dòng)開(kāi)發(fā)模式主要特點(diǎn)的基礎(chǔ)上對(duì)混合開(kāi)發(fā)模式做更深入的探討。
移動(dòng)應(yīng)用;開(kāi)發(fā)模式;混合模式
近年來(lái),隨著4G網(wǎng)絡(luò)的普及,移動(dòng)互聯(lián)網(wǎng)的發(fā)展更是突飛猛進(jìn),鑒于便捷高效的互聯(lián)網(wǎng)接入環(huán)境和智能終端的普及,移動(dòng)終端應(yīng)用市場(chǎng)規(guī)模呈現(xiàn)了持續(xù)增長(zhǎng)的態(tài)勢(shì),移動(dòng)應(yīng)用的開(kāi)發(fā)也被提至重要地位。常見(jiàn)的移動(dòng)應(yīng)用開(kāi)發(fā)模式包括原生開(kāi)發(fā)模式、WEB開(kāi)發(fā)模式和混合開(kāi)發(fā)模式,下面我們將在對(duì)三種開(kāi)發(fā)模式對(duì)比介紹的基礎(chǔ)上,深入探討混合開(kāi)發(fā)模式的具體內(nèi)容。
原生開(kāi)發(fā)模式、WEB開(kāi)發(fā)模式、混合開(kāi)發(fā)模式是目前常見(jiàn)的移動(dòng)應(yīng)用開(kāi)發(fā)模式。
(1)原生開(kāi)發(fā)模式是基于智能終端操作系統(tǒng)并且使用平臺(tái)特定的原生程序編寫運(yùn)行移動(dòng)應(yīng)用程序,比如Android的開(kāi)發(fā)平臺(tái)有Eclipse、AndroidStudio,主要采用Java語(yǔ)言進(jìn)行開(kāi)發(fā);IOS的開(kāi)發(fā)平臺(tái)為XCode,主要采用Swift、Objective-C、C、C++語(yǔ)言;Windows Phone的開(kāi)發(fā)平臺(tái)有VisualStudio,主要采用C# .NET語(yǔ)言,原生開(kāi)發(fā)模式下開(kāi)發(fā)的應(yīng)用程序被稱為Native App,也稱為本地App。它的優(yōu)點(diǎn)包括:①完全的設(shè)備訪問(wèn)能力,能夠訪問(wèn)手機(jī)的所有功能(GPS、相機(jī)、位置等);②具有更好的運(yùn)行速度、性能和用戶體驗(yàn);③支持離線工作;④支持豐富的圖形和動(dòng)畫;⑤在應(yīng)用商店輕易地找到應(yīng)用并且在主屏幕上能輕易找到應(yīng)用圖標(biāo)。它的缺點(diǎn)包括:①開(kāi)發(fā)成本較高;②范圍限制較多(只能訪問(wèn)在特定操作系統(tǒng)上運(yùn)行的設(shè)備);③用戶必須手動(dòng)下載更新最新版本;④內(nèi)容限制,應(yīng)用商店限制;
(2)WEB開(kāi)發(fā)模式主要是借助移動(dòng)端瀏覽器的強(qiáng)大功能,采用統(tǒng)一的標(biāo)準(zhǔn)的HTML,JavaScript,CSS等WEB技術(shù)進(jìn)行開(kāi)發(fā),這種開(kāi)發(fā)模式的主要優(yōu)點(diǎn)包括:①適用范圍廣,適用于所有智能終端;②學(xué)習(xí)、開(kāi)發(fā)成本較低,容易快速掌握開(kāi)發(fā)技巧;③突破了平臺(tái)的限制,可以跨平臺(tái)使用;④方便、快捷地部署,不需要像其他應(yīng)用一樣提交到應(yīng)用商店;⑤呈現(xiàn)在用戶面前的永遠(yuǎn)都是應(yīng)用的最新版本,不需要下載升級(jí)版本;它的主要缺點(diǎn)包括:①由于訪問(wèn)需要通過(guò)網(wǎng)絡(luò),因此在使用的性能體驗(yàn)上較差和較慢;②支持圖形和動(dòng)畫效果較差;③不適用于應(yīng)用商店因此沒(méi)有靠下載應(yīng)用盈利的渠道;④不支持離線功能,必須聯(lián)網(wǎng);⑤限制訪問(wèn)終端自帶設(shè)備,功能不能完全實(shí)現(xiàn)。
(3)混合開(kāi)發(fā)模式則是同時(shí)使用程序語(yǔ)言和網(wǎng)頁(yè)語(yǔ)言進(jìn)行開(kāi)發(fā),融合了原生開(kāi)發(fā)模式和WEB開(kāi)發(fā)模式,充分繼承了兩種開(kāi)發(fā)模式的優(yōu)點(diǎn),取長(zhǎng)補(bǔ)短,既實(shí)現(xiàn)了完全的設(shè)備訪問(wèn)能力,保證了用戶的高性能體驗(yàn),又突破了平臺(tái)限制,實(shí)現(xiàn)了跨平臺(tái)支持,成為目前最主要的移動(dòng)應(yīng)用開(kāi)發(fā)模式。
混合開(kāi)發(fā)模式集原生開(kāi)發(fā)模式和WEB開(kāi)發(fā)模式技術(shù)與一身,采用混合開(kāi)發(fā)模式不僅可以使用跨平臺(tái)WEB技術(shù)實(shí)現(xiàn)應(yīng)用程序的重要部分,還可以根據(jù)需要保留對(duì)本機(jī)API的直接訪問(wèn)。
混合開(kāi)發(fā)模式編寫的應(yīng)用程序安裝網(wǎng)頁(yè)語(yǔ)言與程序語(yǔ)言的混合方式,可以分為:多View混合型,單View混合型和Web主體型。[1]
多View混合型是指Native View和Web View獨(dú)立展示,交替出現(xiàn),此類應(yīng)用混合邏輯比較簡(jiǎn)單,既根據(jù)需要將WebView當(dāng)成一個(gè)獨(dú)立的View運(yùn)行起來(lái),并且在WebView內(nèi)完成相關(guān)的展示操作。這種混合模式的應(yīng)用主體是Native App,Web技術(shù)只是起到一個(gè)補(bǔ)充作用,開(kāi)發(fā)應(yīng)用難度和原生開(kāi)發(fā)模式基本相當(dāng)。
單View混合型是指在一個(gè)View內(nèi)同時(shí)包含NativeView和WebView,兩個(gè)View之間相互是覆蓋關(guān)系或者層疊關(guān)系,這種混合型開(kāi)發(fā)的難度也是不小的,開(kāi)發(fā)成本也不低,但是用戶的體驗(yàn)就比較好。
Web主體型則是意如其名,該類型應(yīng)用的主體是WebView,主要以HTML5、CSS3和JavaScript為主的網(wǎng)頁(yè)語(yǔ)言編寫,中間穿插Native相關(guān)功能,此模式開(kāi)發(fā)的應(yīng)用在用戶體現(xiàn)性能上存在一定的缺陷,但是整體開(kāi)發(fā)的難度卻是大幅度的降低,基本上可以實(shí)現(xiàn)跨平臺(tái)應(yīng)用,成為主要的混合開(kāi)發(fā)模式。
混合開(kāi)發(fā)的實(shí)質(zhì)就是支持 Web 功能和原生功能的相互嵌套,即JS 代碼和原生代碼的相互調(diào)用,從開(kāi)發(fā)層面實(shí)現(xiàn)“一次開(kāi)發(fā),多處運(yùn)行”的機(jī)制,示意圖1如下:
圖1
在開(kāi)發(fā)應(yīng)用程序的過(guò)程中,選擇合適的開(kāi)發(fā)平臺(tái)進(jìn)行開(kāi)發(fā)可以起到事半功倍的效果。常見(jiàn)的開(kāi)發(fā)平臺(tái)有PhoneGap、Titanium、AppCan等。
PhoneGap是基于 Web 開(kāi)發(fā)技術(shù)創(chuàng)建跨平臺(tái)移動(dòng)應(yīng)用的開(kāi)源的開(kāi)發(fā)框架,它是一套國(guó)外的移動(dòng)開(kāi)發(fā)平臺(tái),可以在不同操作系統(tǒng)的移動(dòng)設(shè)備上像本地應(yīng)用一樣運(yùn)行同一個(gè) Web 應(yīng)用。PhoneGap提供了統(tǒng)一的打包平臺(tái),用戶可進(jìn)行統(tǒng)一打包,經(jīng)過(guò) 打包后的Web 應(yīng)用被嵌入原生應(yīng)用的 “盒子”中,從而在終端設(shè)備上運(yùn)行;PhoneGap將本地功能如攝像頭、傳感器、指南針、GPS等封裝成JavaScript調(diào)用,開(kāi)發(fā)者在開(kāi)發(fā)移動(dòng)應(yīng)用時(shí)就可以像使用標(biāo)準(zhǔn) JavaScript類庫(kù)一樣進(jìn)行調(diào)用;PhoneGap 還允許開(kāi)發(fā)者按照一定的規(guī)則使用平臺(tái)指定的本地語(yǔ)言編寫功能。但是PhoneGap并沒(méi)有提供 IDE開(kāi)發(fā)環(huán)境,具體開(kāi)發(fā)過(guò)程需要借助第三方移動(dòng)應(yīng)用開(kāi)發(fā)框架來(lái)實(shí)現(xiàn)。
Titanium開(kāi)發(fā)平臺(tái)和PhoneGap開(kāi)發(fā)平臺(tái)的原理相似,都是通過(guò)傳統(tǒng)Web開(kāi)發(fā)結(jié)合JS調(diào)用本地設(shè)備能力,但是不同的地方是后者不會(huì)通過(guò)JS暴露本地的UI接口,而Titanium則有完整的本地UI接口,通過(guò)JS調(diào)用就能夠獲得本地一樣的UI,使其開(kāi)發(fā)的應(yīng)用看起來(lái)更加接近本地。但是它的某些API是平臺(tái)相關(guān)的,這樣會(huì)降低相關(guān)應(yīng)用的跨平臺(tái)能力,并且Titanium 不兼容標(biāo)準(zhǔn) JavaScript,開(kāi)發(fā)人員需要按照它規(guī)定的語(yǔ)法編寫代碼,增加了開(kāi)發(fā)難度,因此該平臺(tái)在實(shí)際使用過(guò)程中不像PhoneGap一樣為大眾所接受。
AppCan簡(jiǎn)單地可以說(shuō)是PhoneGap的中國(guó)化,是本土移動(dòng)應(yīng)用開(kāi)發(fā)中使用最廣的移動(dòng)平臺(tái),但從實(shí)際過(guò)程中會(huì)發(fā)現(xiàn)AppCan和PhoneGap是截然不同的兩個(gè)平臺(tái),它不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了uexWindow多窗口機(jī)制,實(shí)現(xiàn)了移動(dòng)端的iframe效果,并且提供集成開(kāi)發(fā)環(huán)境的IDE進(jìn)行模擬器開(kāi)發(fā),支持在線上傳證書打包,對(duì)于不了解IOS,以及Android 環(huán)境開(kāi)發(fā)的人來(lái)說(shuō)就輕松很多,更多類似UI控件的封裝、通訊類、地圖等原生控件的支持,并且擁有統(tǒng)一的數(shù)據(jù)統(tǒng)計(jì)平臺(tái),雖然AppCan并不是開(kāi)源的項(xiàng)目,但一直都有面向開(kāi)發(fā)者的免費(fèi)版,使用過(guò)程中相對(duì)更加方便。
移動(dòng)應(yīng)用混合開(kāi)發(fā)模式作為目前主流的移動(dòng)應(yīng)用開(kāi)發(fā)模式,但是其內(nèi)部具體的細(xì)節(jié)處還有很多不同,在具體移動(dòng)應(yīng)用開(kāi)發(fā)的過(guò)程中,開(kāi)發(fā)者可以根據(jù)應(yīng)用的具體功能針對(duì)性地選擇最佳的開(kāi)發(fā)方式,合適地才是最好地,不要局限于一成不變的規(guī)則,靈活運(yùn)用,達(dá)到最理想的效果。
[1]鄭海山.基于混合模式移動(dòng)客戶端開(kāi)發(fā)的安全性研究[J].福建電腦,2013,29(12):64-65.
Mobile Application Development Based on Mixed Mode
Li Hui
Puyang City,Henan Zhongyuan Oilfield Liu Zhunzhen gas plant production and marketing information management station,Henan Puyang 457000
With the massive popularity of mobile Internet,mobile client application development is also important to mention the status of the current common mobile APP includes three types: Native APP,Web App,Hybrid App,their development model were Native Development mode,WEB development model and hybrid development model,development model which combines hybrid native development model and WEB development model that combines the advantages of both modes of development,become the leading mobile application development model,in contrast to the three kinds of paper will the main features of the mobile development model based on mixed development model to do more in-depth discussion.
mobile application; development model; mixed mode
TP311.52
A
1009-6434(2016)6-0215-02