周紹景 應(yīng)杰 潘宏斌 楊正元 黃建
摘要:隨著智能終端的普及,如何高效、低成本的將基于B/S結(jié)構(gòu)的PC應(yīng)用轉(zhuǎn)換為Android應(yīng)用成了當(dāng)前最主要的問題。通過使用WebView組件轉(zhuǎn)換應(yīng)用并對(duì)轉(zhuǎn)換后的應(yīng)用進(jìn)行測(cè)試分析,結(jié)果表明該方法能夠高效、低成本的完成應(yīng)用的轉(zhuǎn)換。
關(guān)鍵詞:B/S結(jié)構(gòu);WebView組件;Android應(yīng)用
中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)05-0053-01
隨著移動(dòng)應(yīng)用的發(fā)展,移動(dòng)終端的擁有者不斷的增長(zhǎng),GSMA在《移動(dòng)經(jīng)濟(jì)2017》中指出,亞太地區(qū)獨(dú)立移動(dòng)用戶已經(jīng)增長(zhǎng)至31億,達(dá)到全球增幅的66.6%,使得全球的消費(fèi)者消費(fèi)行為也發(fā)生了顯著的變化?;ヂ?lián)網(wǎng)企業(yè)為了抓住移動(dòng)互聯(lián)網(wǎng)所帶來的契機(jī),著手對(duì)基于B/S結(jié)構(gòu)開發(fā)的PC應(yīng)用(下稱PC應(yīng)用)進(jìn)行轉(zhuǎn)換,使企業(yè)應(yīng)用能登上移動(dòng)終端的舞臺(tái)繼而增加企業(yè)在市場(chǎng)的競(jìng)爭(zhēng)力。尋找一個(gè)高效、低成本的轉(zhuǎn)換方法成了如今迫切需要解決的難題。本文對(duì)PC應(yīng)用進(jìn)行概述,然后提出轉(zhuǎn)換方法,最后對(duì)其進(jìn)行分析。
1 PC應(yīng)用概述
PC應(yīng)用是將傳統(tǒng)C/S結(jié)構(gòu)的業(yè)務(wù)邏輯層和視圖層進(jìn)行分離所形成的。PC應(yīng)用將應(yīng)用程序分為表示層、應(yīng)用邏輯層和數(shù)據(jù)連接層三個(gè)層次,表示層向服務(wù)器發(fā)送用戶請(qǐng)求以及對(duì)用戶進(jìn)行視圖展示;應(yīng)用邏輯層接受用戶請(qǐng)求并進(jìn)行相關(guān)的業(yè)務(wù)邏輯處理;數(shù)據(jù)連接層與應(yīng)用邏輯層進(jìn)行數(shù)據(jù)交互[1]。
PC應(yīng)用通過瀏覽器發(fā)起HTTP請(qǐng)求,服務(wù)器接收到請(qǐng)求后進(jìn)行業(yè)務(wù)邏輯處理,當(dāng)業(yè)務(wù)邏輯涉及數(shù)據(jù)交互時(shí),應(yīng)用服務(wù)器將與數(shù)據(jù)庫(kù)服務(wù)器交互, PC應(yīng)用程序工作原理如圖1所示。PC應(yīng)用可以進(jìn)行服務(wù)器的橫向擴(kuò)展減緩服務(wù)器壓力,使用瀏覽器作為通用的客戶端,在進(jìn)行應(yīng)用升級(jí)和維護(hù)時(shí),只需對(duì)服務(wù)器進(jìn)行相關(guān)操作實(shí)現(xiàn)了客戶端的零處理[2]。
2 PC應(yīng)用轉(zhuǎn)換成安卓應(yīng)用
2.1 PC應(yīng)用轉(zhuǎn)換成安卓應(yīng)用的思路
PC應(yīng)用向安卓應(yīng)用轉(zhuǎn)換時(shí),只需要對(duì)視圖層進(jìn)行轉(zhuǎn)換,因此可以將需要被轉(zhuǎn)換的應(yīng)用作為Web應(yīng)用對(duì)待。
WebView組件是安卓軟件開發(fā)工具包中的組件之一,用于瀏覽本地或遠(yuǎn)程網(wǎng)頁。通過WebView組件在安卓應(yīng)用中加載顯示本地網(wǎng)頁,從而實(shí)現(xiàn)對(duì)復(fù)雜網(wǎng)頁的封裝達(dá)成Web應(yīng)用轉(zhuǎn)換到安卓應(yīng)用的目的。
2.2 PC應(yīng)用向安卓應(yīng)用轉(zhuǎn)換的案例
本文使用IntelliJ IDEA工具將PC應(yīng)用轉(zhuǎn)換成安卓應(yīng)用,具體步驟如下:
(1)通過IntelliJ IDEA新建一個(gè)安卓項(xiàng)目,將需要轉(zhuǎn)換的Web頁面放入assets文件夾中。
(2)在activity視圖文件中插入
(3)在activity視圖相關(guān)的java類中實(shí)例化WebView組件并將其余activity視圖中的WebView標(biāo)簽相關(guān)聯(lián)。
(4)調(diào)用WebView中的getSettings().setJavaScriptEnabled()方法支持JavaScript的使用。
(5)對(duì)setWebViewClient()方法進(jìn)行復(fù)寫,使超鏈接只能在當(dāng)前應(yīng)用中打開。
(6)通過對(duì)onKeyDown()方法進(jìn)行復(fù)寫,使得用戶觸摸返回系統(tǒng)按鍵時(shí)不再結(jié)束進(jìn)程而是調(diào)用goBack()方法進(jìn)行頁面回退[3]。
(7)還需要在WebView組件的loadURL()方法引入Web頁面的首頁,當(dāng)安卓應(yīng)用進(jìn)程一經(jīng)創(chuàng)建便顯示W(wǎng)eb頁面的首界面。
(8)最后避免出現(xiàn)一打開安卓應(yīng)用便出現(xiàn)Web page not available的錯(cuò)誤,還需要在AndroidManifest.xml文件中的manifest標(biāo)簽下進(jìn)行網(wǎng)絡(luò)權(quán)限的配置。通過添加
3 轉(zhuǎn)換分析
3.1 轉(zhuǎn)換測(cè)試
對(duì)各類Web頁面進(jìn)行多次轉(zhuǎn)換實(shí)驗(yàn),該方法都能有效地使封裝后形成安卓應(yīng)用正常運(yùn)行,因此轉(zhuǎn)換完成后的安卓應(yīng)用能夠投入實(shí)際使用。
通過對(duì)現(xiàn)有安卓應(yīng)用進(jìn)行APK安裝包導(dǎo)出,讓用戶能夠下載使用應(yīng)用。具體方法如下:
通過點(diǎn)擊IntelliJ IDEA菜單中的Build->Generate Signed APK在彈出的窗口中對(duì)安卓應(yīng)用的密匙庫(kù)地址、密碼、有效時(shí)間等進(jìn)行設(shè)置。選中創(chuàng)建的密匙并鍵入其密碼即可完成安卓應(yīng)用的APK安裝包的導(dǎo)出。
3.2 轉(zhuǎn)換分析
該方法轉(zhuǎn)換形成的安卓應(yīng)用能夠很好的融入布局;在轉(zhuǎn)換時(shí)還可以進(jìn)行二次開發(fā),通過JavaScript、CSS等HTML語言對(duì)安卓應(yīng)用界面進(jìn)行修飾美化,還能使用JAVA語言對(duì)安卓應(yīng)用的功能進(jìn)行增強(qiáng);開發(fā)人員只需耗費(fèi)極少的時(shí)間和精力即可完成應(yīng)用程序的轉(zhuǎn)換,同時(shí)應(yīng)用的升級(jí)與維護(hù)極其方便;PC應(yīng)用和安卓應(yīng)用可以共用同一段源代碼,在提升代碼復(fù)用性的同時(shí)降低了維護(hù)的成本。
4 結(jié)語
闡述了PC應(yīng)用向安卓應(yīng)用轉(zhuǎn)換的方法,該方法當(dāng)對(duì)PC應(yīng)用轉(zhuǎn)換時(shí),無需再次開發(fā)或修改源代碼達(dá)到了減免開發(fā)成本和時(shí)間的目的。開發(fā)者還可以在轉(zhuǎn)換的過程中通過WebView組件對(duì)轉(zhuǎn)換后形成的安卓應(yīng)用視圖進(jìn)行美化,提升用戶的體驗(yàn)度。PC應(yīng)用和轉(zhuǎn)換后形成的安卓應(yīng)用性能相差無幾,但由于WebView組件支持JavaScript的使用,允許應(yīng)用中的JavaScript代碼調(diào)用后端代碼,給應(yīng)用程序的安全帶來威脅[4]。轉(zhuǎn)換完成后需要對(duì)安卓應(yīng)用進(jìn)行安全系數(shù)提升,完善該缺陷。
參考文獻(xiàn)
[1]馬馳.基于BS結(jié)構(gòu)的數(shù)字媒體資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].遼寧:大連海事大學(xué),2016.
[2]朱坤帥.基于BS架構(gòu)的業(yè)務(wù)化空間環(huán)境模式集成平臺(tái)[D].北京:中國(guó)科學(xué)院國(guó)家空間科學(xué)中心,2017.
[3]王運(yùn)生,聶芬.基于WebView組件的Android平臺(tái)網(wǎng)頁封裝程序設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,2013,3(6):104-106.
[4]趙光澤,李暉,孟楊. Android平臺(tái)WebView組件安全及應(yīng)用加固研究[J].信息網(wǎng)絡(luò)安全,2015,(10):64-65.