1前言
隨著移動互聯(lián)網(wǎng)技術的發(fā)展以及移動設備計算能力的提升和普及,移動互聯(lián)網(wǎng)應用在人們生活中越來越不可或缺,人們使用移動APP查找需要的各種信息,如:新聞,購物,視頻、娛樂以及工作事項等已成為現(xiàn)代社會的生活常態(tài)。移動應用市場的多樣性要求開發(fā)者們及時獲取用戶需求,快速迭代出符合用戶需求的移動應用。原生移動APP的開發(fā)過程中,大部分開發(fā)時間用于處理不同移動平臺間的差異以及底層系統(tǒng)操作上,導致業(yè)務功能開發(fā)的時間不夠充分。針對這種困境,基于HTML5的Hybrid App開發(fā)模式,即混合應用開發(fā)模式,兼具傳統(tǒng)原生開發(fā)模式良好用戶體驗的優(yōu)勢以及Web開發(fā)模式跨平臺以及快速迭代的優(yōu)勢,得到了快速的發(fā)展并被開始被開發(fā)者廣泛用于解決移動應用快速開發(fā)以及跨平臺的需求。
2研究現(xiàn)狀
每個移動操作系統(tǒng)都有自己的SDK,用于創(chuàng)建移動應用。例如,對于IOS平臺來說,開發(fā)者需使用Objective-C和Swift語言創(chuàng)建應用,而Android系統(tǒng)的應用編程語言是Java,使用這些語言和官方SDK創(chuàng)建的應用稱為原生應用。但是為了實現(xiàn)跨平臺,可以通過封裝一個中間層代理原生SDK的調用,上層應用通過中間層代理原生SDK所提供的API,這也就是“跨平臺”應用實現(xiàn)的基本原理。
2.1HTML5 移動 Web 應用開發(fā)
隨著HTML5和CSS3逐漸興起,基于HTML5的應用將對移動互聯(lián)網(wǎng)領域起到巨大的影響。所謂的HTML5實際上是指包括HTML、CSS和JavaScript在內的一套技術組合,這些技術強化了Web網(wǎng)頁的表現(xiàn)能力。目前支持HTML5的主流瀏覽器有Google Chrome、Firefox、Internet Explorer 9和10等。
2.2Hybird 移動應用開發(fā)的類型
無論是Android、IOS,還是Windows Phone,在它們的SDK中都包含了一個非常高級的WebView組件,借助這個組件,程序員能夠使用標準的HTML5技術實現(xiàn)Hybird應用的設計和編碼。Hybrid移動APP的混合主要包由兩部分組成,底層是基于設備本地能力的Native應用,上層是基于瀏覽器Web應用,Web端可以通過接口調用Native端封裝好的功能。無論是Native端還是Web端,都具有各自的UI和布局能力、數(shù)據(jù)交互能力和腳本調用能力等。Hybrid APP引擎和框架一般使用HTML5和Javascript作為編程語言,調用引擎封裝的底層設備能力如照相機、通訊錄、文件系統(tǒng)、傳感器以及地圖API等。HTML5和Javascript只是作為一種解析語言,真正調用的都是基于Native封裝的底層API,這是和Web APP的最大區(qū)別。
3Hybird APP引擎
Hybrid App引擎技術開發(fā)的移動程序通過Hybrid App引擎的打包服務可以生成Android、iOS 等不同平臺移動App,還可以生成供移動設備Web端訪問的代碼。
圖1 Hybird App通用框架
3.1Hybird引擎架構設計
Hybird APP引擎本質上是一個原生應用,使用平臺相關語言編寫,針對不同的移動平臺都需要開發(fā)一個Hybird APP引擎,一般情況下如果需要同時支持Android平臺以及IOS平臺,則需要開發(fā)兩個Hybird APP引擎,分別運行與這兩個平臺。Hybird APP引擎通過集成系統(tǒng)Webview瀏覽器內核組件,起到一個類似于虛擬機的作用,將原生應用和系統(tǒng)級應用對上層應用隔離起來,同時運行于不同移動平臺的Hybird APP引擎對上層應用提供原生系統(tǒng)接口調用時使用統(tǒng)一的接口調用規(guī)范,從而使得上層應用具備基本的跨平臺能力。
3.2引擎通信機制
通訊機制是Hybird APP引擎首先應該考慮和設計的一個關鍵的功能就是Webview和Native原生代碼層之間的相互調用,比如調用攝像頭以及本地存儲系統(tǒng)等。Native原生代碼和H5之間的通信有兩個方向,分別是Native原生代碼調用H5代碼,以及H5代碼調用Native原生代碼。
Native原生代碼調用H5是通過調用Webview對象的“l
OAdUrl”方法直接執(zhí)行Javascript代碼片段,這種調用方法類似于在瀏覽器地址欄輸入一段Javascript代碼來觸發(fā)H5端代碼的執(zhí)行,具體的調用方式如下:
webview.loadUrl("javascript:alert('hello world')");
圖2 H5橋接協(xié)議調用Android本地代碼
H5調用Native原生代碼的主要原理是通過Webview系統(tǒng)組件攔截H5代碼發(fā)起的url請求,如果被攔截到的url符合H5調用Native原生代碼的約定規(guī)范,即可實現(xiàn)H5端調用Native原生代碼,這種方法本質上是一種通過注冊私有協(xié)議實現(xiàn)系統(tǒng)調用的方法。以下代碼通過一種名字為“jsbridge://”橋接協(xié)議,具體代碼如下:
var iframe = document.createElement('iframe');
iframe.src = 'jsbridge://class.method?[...args]';
圖3 H5橋接協(xié)議調用Android本地代碼
3.3引擎插件機制
Hybird APP應用都是有H5端和Native原生代碼兩個部分的程序組成的。本質上,H5端和Native原生代碼都能完成界面開發(fā)。為了充分利用二者的優(yōu)勢,應該盡可能地將APP的UI展現(xiàn)部分使用H5來實現(xiàn),而對于JavaScript解釋性語言本身的性能缺陷,應該使用Native語言進行計算密集型、IO密集型以及安全保障等功能的實現(xiàn),如轉場動畫、多線程作業(yè)、IO網(wǎng)絡操作以及交易支付等場景。
一般情況下在開發(fā)引擎擴展插件時除了需要使用Native原生代碼完成插件所需的功能之外,還需要為擴展插件編寫對應的JavaScript API,通過 H5 頁面中調用插件暴露的 JavaScript API觸發(fā)對應Native原生方法的調用,原生方法計算結束之后將結果通過JSBridge返回H5端。
4Hybird應用調試
任何應用程序在開發(fā)過程中,應用調試都是一個不可或缺的環(huán)節(jié),通過調試能夠幫助開發(fā)人員準確的定位程序出現(xiàn)問題的位置,以方便進行修復。而使用Hybird模式開發(fā)的APP其H5端的程序運行在系統(tǒng)Webview組件中,無法直接對其進行調試,于是我們引入Weinre作為調試工具。Weinre(WebInspector Remote)是一款基于 Web Inspector(Webkit)的遠程調試工具,在PC上直接調試運行在移動設備上的遠程頁面,通過Weinre開發(fā)人員可以在PC上可以即時修改目標網(wǎng)頁的HTML/CSS/JavaScript。Weinre 基于Web Inspector開發(fā),兼容WebKit核心的瀏覽器,可以在Chrome/Safari瀏覽器打開Weinre客戶端進行調試。
5結論
隨著移動互聯(lián)網(wǎng)技術的快速發(fā)展,越來越多開發(fā)者投入到移動端應用開發(fā)領域中。但是移動平臺操作系統(tǒng)的多樣性給APP開發(fā)者帶來了很多困難,開發(fā)一款移動應用需要根據(jù)運行平臺使用不同的開發(fā)語言,開發(fā)者需要掌握多種平臺開發(fā)的技術,導致開發(fā)成本高和開發(fā)周期長。為了解決這些問題,兼具Native App和Web App優(yōu)勢的Hybrid App開發(fā)模式被開發(fā)者廣泛采用。Hybrid開發(fā)模式的優(yōu)點是顯而易見的,但是這種開發(fā)模式在計算密集型應用場景上效率明顯低于原生應用,所以未來混合開發(fā)模式的研究重點將是針對UI流暢性和轉場動畫等場景進行Hybrid APP引擎優(yōu)化的工作。
核心關注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領域的管理,全面涵蓋了企業(yè)關注ERP管理系統(tǒng)的核心領域,是眾多中小企業(yè)信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.vmgcyvh.cn/
本文標題:Hybird移動應用框架實現(xiàn)研究
本文網(wǎng)址:http://www.vmgcyvh.cn/html/solutions/14019321067.html