999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能手機跨平臺中間件CPAM-SP設計與應用*

2014-02-10 03:39:59傅俊謙李俊杰肖德琴
通信技術 2014年8期
關鍵詞:跨平臺頁面智能手機

傅俊謙,李俊杰,向 花,肖德琴

(1.華南農業大學信息學院,廣東廣州510642;2.廣東領先數碼技術有限公司,廣東廣州510075)

智能手機跨平臺中間件CPAM-SP設計與應用*

傅俊謙1,李俊杰2,向 花2,肖德琴1

(1.華南農業大學信息學院,廣東廣州510642;2.廣東領先數碼技術有限公司,廣東廣州510075)

針對當前移動應用開發中存在的開發費用高、周期長、覆蓋率較低、編程語言不統一等問題,提出采用JavaScript設計并實現了一種基于智能手機應用的跨平臺中間件(CPAM-SP,a Crossing Platform Application Middleware based on Smart Phone),詳細介紹了CPAM-SP與iOS、Android、Windows Phone等各主流智能移動終端操作系統間的通信機制以及應用方案。實驗結果表明,使用智能手機跨平臺中間件,開發人員只需要使用基本的Web技術即可開發出Web應用。使用智能手機跨平臺中間件,能達到同一代碼能夠在不同移動終端平臺上運行的效果,降低了開發難度,提高了開發效率。

智能手機終端 中間件 跨平臺開發 體系結構

0 引 言

隨著無線移動應用的推廣與普及,移動終端也越來越呈現出多樣獲得趨勢[1]。智能手機作為移動智能終端中普及率最高、形態最多樣、需求量最大的典型產品,載體作用不斷上升,市場空間極為廣闊[2]。不同的手機生產廠家生產具備不同顯示能力和數據處理能力的采用不同操作系統的智能手機終端。智能手機款式多、操作系統平臺多、適配難,在移動應用開發中,開發者普遍面臨著開發費用高、周期長、覆蓋率較低等問題[3]。同時,移動應用開發者通常只熟知基本的Web技術(HTML,CSS, JavaScript),為開發一款對應不同平臺的軟件常常需要他們學習風格完全不同的編程語言。編程語言的不熟悉以及移動開發面臨的問題已成為當前制約移動互聯網發展的主要因素之一。

為了擺脫操作系統和硬件環境的差異,實現一套代碼不用修改就可以適應不同的平臺,使移動應用開發能夠達到“一次編寫,少量適配,大量覆蓋和分發”的水平。本文根據當前移動應用開發中存在的開發費用高、周期長、覆蓋率較低、編程語言不統一等問題,采用JavaScript設計并實現了一種基于智能手機應用的跨平臺中間件(CPAM-SP)。下面將首先介紹CPAM-SP的體系結構,然后詳細設計CPAM-SP與iOS、Android、Windows Phone等主流智能移動終端操作系統間的通信機制,最后介紹CPAM-SP的應用方案。

1 CPAM-SP體系結構

CPAM-SP的體系結構如圖1所示。Web應用的頁面使用基本的Web技術即HTML,CSS以及JavaS-cript來編寫,Web應用的頁面加載工作由各移動終端平臺的瀏覽器頁面渲染引擎完成[4]。CPAM-SP通過攔截函數攔截頁面代碼對CPAM-SP插件的調用,CPAM-SP提供的插件按照功能分為攝像頭插件模塊、文件插件模塊、多媒體插件模塊、通知插件模塊、聯系人插件模塊、網絡插件模塊等模塊,后續還可以根據實際情況需要不斷添加相應功能的插件模塊。最后CPAM-SP的插件調用各移動終端平臺(如iOS、Android、Windows Phone等)提供的API,如攝像頭、多媒體、文件等API,實現相應的功能,通過回調函數通知頁面相關操作完成。其中CPAM-SP層與本地移動終端平臺API層合稱本地層。

圖1 體系結構Fig.1 Architecture figure

2 CPAM-SP通信機制詳細設計

CPAM-SP是Javascript調用本地移動終端平臺API的一個橋梁,它負責把外部的Javascript調用轉化為內部系統本地移動終端平臺API的調用[5]。開發人員只需要使用基本的Web技術即可開發出跨平臺的Web應用,在Web應用運行時,首先加載中間件的Javascript文件,然后通過攔截Javascript語言對CPAM-SP提供的插件的調用,CPAM-SP將根據Web應用當前所運行在的移動終端平臺來調用所需要的相應移動終端平臺的SDKAPI,調用完畢后通過回調函數通知頁面相應動作完成頁面可以繼續執行其他操作[6]。

由于不同的移動終端平臺采用不同的架構, CPAM-SP在具體實現與各移動終端平臺本地層通信時會有所差異[7-9]。在實際的設計過程中, CPAM-SP采用工廠模式,把調用本地移動終端平臺API的插件類統一繼承于插件抽象類Plugin,而插件抽象類實現Plugin接口。Plugin插件抽象類主要作用是要讓派生類實現execute函數,完成各插件所要達到的功能。CPAM-SP采用PluginManager類來管理各繼承了Plugin類的子插件類,根據WebChrome-Client類傳遞過來的Javascript請求參數,確定需要調用的本地插件類。PluginManager類根據Plugin. xml文件中聲明的插件類注冊不同的子插件類,不同的子插件類封裝了不同功能的本地移動終端平臺API,當Javascript需要調用本地移動終端平臺API時,PluginManager將從Plugin.xml列表中尋找相對應的本地調用并轉發該請求。CPAM-SP的整個通信機制主要由3大部分組成,分別是Javascript調用本地代碼、本地代碼調用本地移動終端平臺API以及本地代碼回調Javascript。Javascript層與移動終端平臺本地層之間通信原理圖如圖2所示。

CPAM-SP通信機制的核心內容包括本地代碼調用、本地API調用和本地代碼回調3大組成部分,下面對這3部分進行重點介紹。

2.1 本地代碼調用

本地代碼的調用通過Web應用頁面調用CMAP-SP的JavaScript文件實現,調用的流程如下:

1)在Web應用頁面中加載CPAM-SP的Javascript文件,添加document.addEventList ener()等待監聽事件。

2)如果中間件的Javascript文件加載成功,則可以開始調用Javascript文件中的本地代碼,通過調用本地代碼實現對本地移動終端平臺API的調用。

3)本地代碼通過WebChromeClient類攔截on-JsPrompt回調,利用帶有特殊標記開頭的標志得知是調用本地插件請求,然后向PluginManager類轉發該請求。

4)PluginManager類將會根據參數來查找并轉發該請求,最終由對應的子插件完成該請求。

圖2 Javascript層與移動終端平臺本地層之間通信機制Fig.2 Communication mechanism figure between Javascript layer and local layer

2.2 本地API調用

本地代碼調用本地移動終端平臺API的流程是CPAM-SP的核心。與本地插件通信密切相關的是: Plugin類,PluginManager類,PluginResult類,CallbackServer類。Plugin類是本地層所有插件的抽象基類,所有子插件都繼承了Plugin類并實現Plugin類中的execute方法。由子插件最終實現對本地移動終端平臺的調用,其流程如下:

1)Javascript端調用本地代碼時,onJSPrompt攔截會相關的action請求并將其轉發給PluginManager類,而PluginManager類便會負責查找并執行對應的子插件類。所有的子插件類都由PluginManager托管。由于PluginManager類自身對所有的子插件類進行了管理,因此其可以很輕松的通過service找到對應的子插件類。PluginManager類載入子插件的方式主要是通過讀取plugins.xml中的配置。配置中的屬性name與service對應,屬性value與子插件類的路徑對應。

2)然后PluginManager類向對應的子插件類轉發該action。

3)對應的子插件類根據action判斷插件需要執行的動作方法并調用本地移動終端平臺的API執行該action。

4)對應的子插件類根據執行action的情況返回一個PluginResult。PluginResult表示插件執行結果的實體。它主要包含了3個字段,分別是狀態碼status,message和keepCallBack。最基本的狀態碼分別是OK(成功),NO_RESULT(沒有結果),Error(失敗),其他的狀態碼還定義了許多失敗的具體異常碼。message是返回的結果實體,message將作為參數傳入回調函數中。keepCallBack表示是否需要保持回調。如果該項為false,那么在Javascript層在執行回調后將立即刪除回調以釋放資源。toSuccess-CallBackString和toErrorCallback String兩個工具方法將生成一個Javascript回調語句,配合CallBackS-erver類實現了本地端Javascript的回調。

2.3 本地代碼回調

CPAM-SP在本地層建立了一個CallBackServer實現回調。由Javascript不斷向CallBackServer類請求回調語句,然后執行該回調。CallBackServer提供了兩種模式,一種是基于XMLHttpRequst,一種是基于輪詢。XHR的方式即Javascript層不斷向Call-BackServer發送XMLHttpRequest請求,而Call-BackServer則將回調語句返回給Javascript。輪詢方式則是Javascript通過prompt向本地發送poll請求,本地將從CallBackServer中拿出下一個回調返回給Javascript。

3 跨平臺中間件CPAM-SP的應用

所有基于CPAM-SP開發的Web應用在頁面開始加載時必須先啟動CPAM-SP。CPAM-SP的啟動主要依賴于Javascript文件中的初始化函數完成。

首先,在Javascript文件中,其channel模塊注冊了監聽onNativeReady事件。當所有本地插件被注冊后,本地層觸發onNativeReady事件表示本地層準備完畢,可以接受plugin調用。onDOMContentLoaded表示Html頁面的DOM內容已經被瀏覽器解析。在這兩個事件完成后Javascript文件中包含的其他模塊被實例化,當準備完畢后初始化函數廣播on-CordovaReady來通知用戶可以使用各子插件的功能。接著初始化函數嘗試獲取硬件設備屬性和網絡連接屬性,當一切都準備好后,onDeviceReady事件會被觸發表示所有的事件對象已經創建,并且硬件屬性已經被設置。CPAM-SP啟動的流程圖如圖3所示。

圖3 CPAM-SP啟動的流程Fig.3 Flow chart of CPAM-SP's initialization

CPAM-SP完成啟動后,瀏覽器的頁面渲染引擎加載頁面的其他內容并顯示在手機屏幕上。當整個頁面完成加載后,Web應用進入可與用戶交互階段,此時用戶可根據頁面提示使用該Web應用。CPAM-SP提供了功能豐富的API接口,基本覆蓋常用的各移動終端平臺提供的API接口。移動應用開發者只需要調用CPAM-SP提供的API接口,即可控制不同移動終端平臺實現對應的功能,開發出對應多個主流移動終端平臺的Web應用。

圖4展示了使用本跨平臺中間件開發的一個Android平臺的音樂播放器演示程序,使用該程序可以對mp3文件進行播放、暫停播放、停止播放等操作,在播放過程中還能顯示當前播放進度和閱讀txt文件。圖5展示了使用本跨平臺中間件開發的一個Android平臺的文本閱讀器演示程序,使用該程序可以打開txt文件進行閱讀。

圖4 音樂播放器演示程序Fig.4 Music player demo

圖5 文本閱讀器演示程序Fig.5 Text reader demo

4 結 語

CPAM-SP是一個可以統一連接Web應用和移動終端硬件的橋梁,它不僅為iOS、Android、WindowsPhone等主流智能移動終端操作系統構建了原生的程序項目模板,還可以為其提出了相應操作硬件接口的API。通過本跨平臺中間件構建的Web應用只需要使用一段JavaScript代碼即可擁有足夠的權限訪問移動設備特有的硬件功能。CPAM-SP框架提供了一系列的API供開發人員在JavaScript代碼中調用;通過這些API調用,Web應用就可以與相應移動平臺的SDKAPI進行交互,以調用當前運行的移動終端平臺本地的功能,從而達到同一代碼能夠在不同移動終端平臺上運行的效果,降低了開發難度,提高了開發效率。與同類產品PhoneGap相比,該跨平臺中間件支持的移動終端平臺還比較少,在中文字符支持上優于PhoneGap,由于與PhoneGap一樣采用Web技術,在特別復雜的應用運行速度稍顯緩慢。同時,該跨平臺中間件提供的插件還比較少,能提供的功能還比較有限,下一步將開發更多的插件以提供更全面的功能給開發人員調用。

[1] 林遠.跨平臺手機移動中間件[J].杭州電子科技大學學報,2011,31(05):151-154.

LIN Yuan.Cross-platform Cell Phone Mobile Middleware [J].Zhejiang University of Technology.2011,31(5): 151-154.

[2] 溫曉君.中國智能手機產業鏈研究及趕超之路[J].通信技術,2013,46(08):131-135.

WEN Xiao-jun.China’s Smart Phone Industry Chain and Development[J].CommunicationsTechnology. 2013,46(8):131-135.

[3] 林遠.跨平臺手機移動中間件的設計與實現[D].杭州:浙江工業大學,2012.

LIN Yuan.Dissertation Submitted to Zhejiang University of Technology for the Degree of Master[D].Zhejiang U-niversity of Technology.2012.

[4] Introduction to PhoneGap:Developing Native Applications for Libraries[J].The Reference Librarian,2012, 53(4):441-447.

[5] 陶強,劉宴兵,肖云鵬.面向多終端異構系統的中間件平臺體系結構研究[J].計算機工程與設計,2012,33 (04):1431-1436.

TAO Qiang,LIU Yan-bing,XIAO Yun-peng.Research on Architecture of Middleware Platform Oriented to Multiple-terminal Heterogeneous System[J].Computer Engineering and Design.2012,33(4):1431-1436.

[6] 武晶晶.跨平臺的PhoneGap研究[J].信息安全與技術,2012,3(12):71-72.

WU Jing-jing.The Cross Platform PhoneGap Research [J].Information Security and Technology.2012,3 (12):71-72.

[7] Reto Meier,佘建偉,趙凱.Android 4高級編程[M].第3版.北京:清華大學出版社,2013:97-211.

Reto Meier,SHE Jian-wei,ZHAO Kai.Android 4 Advanced Programming[M].3.Beijing:Tsinghua University Press,2013:97-211.

[8] Fredrik Olsson,Jeff LaMarche,Jack Nutting,等.精通iOS開發[M].第5版.北京:人民郵電出版社,2013:66-108.

Fredrik Olsson,Jeff LaMarche,Jack Nutting,et al.Proficient in iOS Development[M].5.Beijing:Posts and Telecom Press,2013:66-108.

[9] 李開涌.Windows Phone 7應用開發入門與實踐[M].北京:機械工業出版社,2011.

LI Kai-yong.Introduction and Practice to Windows Phone 7 Application Development[M].Beijing:China Machine Press,2011.

FU Jun-qian(1989-),male,graduate student,mainly engaged in the research of computer networks and applications,wireless multimedia network.

李俊杰(1967—),男,高級工程師,主要研究方向為電子信息,互聯網數據存儲與處理,移動互聯網應用等;

LI Jun-jie(1967-),male,senior engineer,mainly engaged in the research of electronic information,Internet data storage and processing,mobile Internet applications.

向 花(1969—),女,高級電信業務師、通信工程師,主要研究方向為互聯網環境下企業客戶關系管理、項目管理、數據挖掘等;

XIANG Hua(1969-),female,advanced telecommunications services division,communications engineers,mainly engaged in the research of enterprise customer relationship management in the Internet environment,project management,and data mining.

肖德琴(1970—),女,博士,教授,博士生導師,主要研究方向為計算機網絡應用,無線傳感器網絡,農業信息感知。

XIAO De-qin(1970-),Ph.D.,professor and doctoral tutor,mainly engaged in the research of computer networks,wireless sensor networks,agricultural information perception.

Design and Application on a Crossing Platform Application Middleware based on Smart Phone(CPAM-SP)

FU Jun-qian1,LI Jun-jie2,XIANG Hua2,XIAO De-qin1
(1.College of informatics,South China Agricultural University,Guangzhou Guangdong 510642,China; 2.Guangdong Lingxian Digital Technology Cooperation,Guangzhou Guangdong 510075,China)

Aiming at the problems in current mobile application development such as high cost,long development cycles,low coverage and without uniform in programming languages,a CPAM-SP(Crossing Platform Application Middleware based on Smart Phone)with JavaScript is proposed in this paper.The communication mechanisms and application solutions between CPAM-SP and iOS,Android,Windows Phone and other mainstream smart phone mobile terminal operating systems are introduced in this paper.Experimental results show that developers could develop their web applications easily by using the middleware, which only needs basic Web technologies to develop the application program.Using middleware can achieve the effect of the same code running on different mobile terminal platform,thus to reduce the development effort and improve the development efficiency.

smart mobile terminals;middleware;cross-platform development;architecture

TP316.5

A

1002-0802(2014)08-0910-05

10.3969/j.issn.1002-0802.2014.08.014

傅俊謙(1989—),男,碩士研究生,主要研究方向為計算機網絡應用,無線多媒體網絡;

2014-03-05;

2014-06-03 Received date:2014-03-05;Revised date:2014-06-03

廣東省高新區發展引導專項計劃(No.00986980192763014)

Foundation Item:A Special Program Guide of High and New Technology Industrial Development zone in Guangdong(No. 00986980192763014)

猜你喜歡
跨平臺頁面智能手機
大狗熊在睡覺
智能手機是座礦
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
智能手機臉
英語文摘(2020年5期)2020-09-21 09:26:30
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
假如我是一部智能手機
趣味(語文)(2018年8期)2018-11-15 08:53:00
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
智能手機
小說月刊(2014年4期)2014-04-23 08:52:21
主站蜘蛛池模板: 欧美另类第一页| 日韩欧美国产三级| 成年av福利永久免费观看| 亚洲国内精品自在自线官| 国内精品自在自线视频香蕉| 久久久久中文字幕精品视频| 色噜噜在线观看| 国产成人精品视频一区视频二区| 国产午夜精品一区二区三区软件| 激情综合网址| 亚洲天堂在线视频| 日韩中文字幕亚洲无线码| 国产黄在线观看| 97超级碰碰碰碰精品| 国产久草视频| 国产日产欧美精品| 国产精品冒白浆免费视频| 综合色在线| 青草视频免费在线观看| 久久特级毛片| 成人亚洲视频| 亚洲AⅤ综合在线欧美一区| 久久国产精品国产自线拍| 中文字幕亚洲无线码一区女同| 精品国产免费第一区二区三区日韩| 国产成年无码AⅤ片在线 | 久久精品这里只有精99品| 久久精品视频亚洲| 综合色区亚洲熟妇在线| 无码免费视频| 91无码视频在线观看| 国产精品播放| 高清亚洲欧美在线看| 无码区日韩专区免费系列 | 欧美日韩va| 日韩av在线直播| 又猛又黄又爽无遮挡的视频网站| 青青草国产免费国产| 免费毛片在线| 福利国产在线| 国产成人无码久久久久毛片| 91热爆在线| 最近最新中文字幕在线第一页 | 欧美特黄一免在线观看| 伊人福利视频| 97视频免费在线观看| 欧美日韩一区二区在线播放| a亚洲天堂| 色偷偷一区二区三区| 在线观看网站国产| 亚洲中文字幕在线精品一区| 国产精品成人一区二区| 欧美日韩国产高清一区二区三区| 国产在线一区二区视频| av手机版在线播放| 色丁丁毛片在线观看| 国产精品偷伦视频免费观看国产| 国产欧美日韩另类精彩视频| 欧美日韩激情| 欧洲日本亚洲中文字幕| 97青草最新免费精品视频| 不卡无码网| 97狠狠操| 伊人大杳蕉中文无码| 精品一区二区三区自慰喷水| 色妞永久免费视频| 亚洲精品第五页| 久久精品欧美一区二区| 日韩av资源在线| 黄色福利在线| 亚洲人成在线精品| 精品视频一区在线观看| 久久久精品国产SM调教网站| 亚洲 成人国产| 精品国产中文一级毛片在线看| 中文字幕无码电影| 天堂va亚洲va欧美va国产| 麻豆AV网站免费进入| 久久综合一个色综合网| 99国产精品免费观看视频| 狠狠色丁香婷婷| 992Tv视频国产精品|