亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        移動(dòng)操作系統(tǒng)跨平臺(tái)應(yīng)用開(kāi)發(fā)技術(shù)

        2020-02-01 03:24:04郄小明閆江華
        電子技術(shù)與軟件工程 2020年9期
        關(guān)鍵詞:跨平臺(tái)

        郄小明 閆江華

        (中國(guó)電子科技集團(tuán)公司第五十四研究所 河北省石家莊市 050081)

        近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,智能終端已經(jīng)成為生活和工作中不可或缺的重要工具,向用戶提供針對(duì)不同應(yīng)用場(chǎng)景需求的高效應(yīng)用[1]。同時(shí),智能終端的操作系統(tǒng)種類也越來(lái)越多,主要包括IOS、Android、Windows Phone 等,國(guó)產(chǎn)移動(dòng)操作系統(tǒng)如TDOS、元心、麒麟等。一款移動(dòng)應(yīng)用需要同時(shí)覆蓋以上幾種平臺(tái),則必須要針對(duì)不同的平臺(tái)分別進(jìn)行研發(fā)[2],這就帶來(lái)了移動(dòng)應(yīng)用開(kāi)發(fā)復(fù)雜、開(kāi)發(fā)周期長(zhǎng)、開(kāi)發(fā)效率低、風(fēng)格統(tǒng)一困難和運(yùn)維成本大等諸多問(wèn)題。針對(duì)這種情況,滿足“一次開(kāi)發(fā),多個(gè)平臺(tái)使用”的應(yīng)用跨平臺(tái)開(kāi)發(fā)技術(shù)成為開(kāi)發(fā)者的理想選擇。

        本文通過(guò)移動(dòng)應(yīng)用的對(duì)比分析,提出了一種跨平臺(tái)應(yīng)用開(kāi)發(fā)架構(gòu),以滿足通用及特定場(chǎng)景下應(yīng)用需求,并對(duì)未來(lái)移動(dòng)應(yīng)用的發(fā)展提出自己的看法。

        1 移動(dòng)應(yīng)用分類

        目前應(yīng)用程序主要分為三類:原生應(yīng)用(Native App)、網(wǎng)頁(yè)應(yīng)用(Web APP)和混合模式移動(dòng)應(yīng)用(Hybrid App)。原生應(yīng)用即開(kāi)發(fā)者采用操作系統(tǒng)所提供的一套標(biāo)準(zhǔn)接口,不同的操作系統(tǒng)會(huì)提供不同的開(kāi)發(fā)語(yǔ)言與標(biāo)準(zhǔn)接口,原生應(yīng)用有很強(qiáng)的交互性和可拓展性;網(wǎng)頁(yè)應(yīng)用指采用Html5 語(yǔ)言寫(xiě)出的生存在瀏覽器中的應(yīng)用;混合應(yīng)用指半原生半Web 的混合類應(yīng)用,由原生提供統(tǒng)一的API給JavaScript 調(diào)用,實(shí)際的主要邏輯有Html 和JavaScript 來(lái)完成,最終是放在Webview 中呈現(xiàn),只需要寫(xiě)一套代碼即可達(dá)到跨平臺(tái)效果[3]。三類應(yīng)用對(duì)比如表1所示。

        綜合分析,混合應(yīng)用兼具原生應(yīng)用擁有良好交互體驗(yàn)的優(yōu)勢(shì)和網(wǎng)頁(yè)應(yīng)用跨平臺(tái)的優(yōu)勢(shì)[4],一方面,開(kāi)發(fā)者可以充分利用現(xiàn)代移動(dòng)設(shè)備所提供的全部不同的特性和功能;另一方面,使用 Web 語(yǔ)言編寫(xiě)的所有代碼都可以在不同的移動(dòng)平臺(tái)之間共享,使得開(kāi)發(fā)和日常維護(hù)過(guò)程變得集中式、更簡(jiǎn)短、更經(jīng)濟(jì)高效。

        2 跨平臺(tái)應(yīng)用架構(gòu)設(shè)計(jì)

        借鑒混合應(yīng)用開(kāi)發(fā)的思想和優(yōu)勢(shì),本文提出一種支持跨平臺(tái)的應(yīng)用架構(gòu),如下圖所示。應(yīng)用采用分層設(shè)計(jì)思想,每層負(fù)責(zé)不同的職能,自底向上分為系統(tǒng)層、中間層和呈現(xiàn)層。移動(dòng)終端跨平臺(tái)應(yīng)用開(kāi)發(fā)方向主要分為網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)和本地應(yīng)用開(kāi)發(fā),針對(duì)方向的差別使用不同的編程語(yǔ)言[5]。從開(kāi)發(fā)人員角度分析,開(kāi)發(fā)語(yǔ)言可分為“美工”、“前端編程語(yǔ)言”和“后臺(tái)編程語(yǔ)言”三大類。 呈現(xiàn)層對(duì)應(yīng)“美工”和“前端編程語(yǔ)言”,處理本地應(yīng)用部分,重點(diǎn)關(guān)注應(yīng)用界面的美觀性和用戶體驗(yàn)。中間層對(duì)應(yīng)“后臺(tái)編程語(yǔ)言”,處理網(wǎng)絡(luò)應(yīng)用和本地應(yīng)用部分,重點(diǎn)設(shè)計(jì)應(yīng)用整體結(jié)構(gòu),使應(yīng)用可以運(yùn)行在操作系統(tǒng)之上。開(kāi)發(fā)人員可以根據(jù)每層需求,選擇專用語(yǔ)言開(kāi)發(fā),從而解決開(kāi)發(fā)手段復(fù)雜多樣的問(wèn)題。如圖1。

        表1

        圖1

        圖2

        2.1 系統(tǒng)層

        系統(tǒng)層具備原生系統(tǒng)的功能調(diào)用,主要包括了手機(jī)相冊(cè)、通訊錄、攝像頭、地理位置、網(wǎng)絡(luò)狀態(tài)等一些手機(jī)本地調(diào)用處理等,原生系統(tǒng)如Android、IOS、元心和TDOS 等操作系統(tǒng)。

        2.2 中間層

        中間層包括技術(shù)框架和開(kāi)放服務(wù)兩部分。技術(shù)框架是開(kāi)發(fā)者根據(jù)應(yīng)用場(chǎng)景選擇的技術(shù)平臺(tái),如VUE,對(duì)呈現(xiàn)層提供豐富的UI組件,同時(shí)把系統(tǒng)層一些原生功能進(jìn)行二次封裝,對(duì)上提供統(tǒng)一JavaScript 調(diào)用。開(kāi)放服務(wù)指開(kāi)發(fā)者根據(jù)業(yè)務(wù)需求構(gòu)建的具備特定功能的SDK。

        主流的跨移動(dòng)平臺(tái)方式包含跨平臺(tái)引擎驅(qū)動(dòng)和跨平臺(tái)應(yīng)用編譯。開(kāi)放服務(wù)重點(diǎn)采用C/C++語(yǔ)言實(shí)現(xiàn),目前各移動(dòng)操作系統(tǒng)均支持C/C++語(yǔ)言開(kāi)發(fā)的第三方庫(kù),開(kāi)發(fā)者重點(diǎn)解決不同操作系統(tǒng)下開(kāi)放服務(wù)的編譯問(wèn)題,以此滿足跨平臺(tái)要求。

        下面提出一種面向C/C++的通用SDK 服務(wù)架構(gòu)。如下圖所示,自底向上分為支撐層、組件層、邏輯處理層和接口抽象層。如圖2所示。

        (1)支撐層支持多種操作系統(tǒng)環(huán)境下的統(tǒng)一抽象接口操作,屏蔽操作系統(tǒng)在C/C++層差異,使組件層軟件與底層的操作系統(tǒng)實(shí)現(xiàn)分離,降低操作系統(tǒng)對(duì)軟件開(kāi)發(fā)和維護(hù)的影響。

        (2)組件層包含如JSON 組解、日志、存儲(chǔ)等通用組件,ZMQ、SIP、HTTP 等通信組件,媒體處理等擴(kuò)展組件,也可以支持其他C/C++組件。這些組件屏蔽內(nèi)部實(shí)現(xiàn)細(xì)節(jié),對(duì)邏輯處理層提供便捷的開(kāi)發(fā)API。

        (3)邏輯處理層根據(jù)具體業(yè)務(wù)需求,調(diào)用組件層API 接口進(jìn)行相關(guān)業(yè)務(wù)組合處理,并對(duì)接口抽象層提供統(tǒng)一API,如通過(guò)組合SIP、HTTP 協(xié)議組件,實(shí)現(xiàn)如即時(shí)消息、狀態(tài)呈現(xiàn)、和文件傳輸?shù)冉y(tǒng)一通信業(yè)務(wù)。

        (4)接口抽象層突破傳統(tǒng)API 調(diào)用方式,實(shí)現(xiàn)前臺(tái)呈現(xiàn)與開(kāi)放服務(wù)的解耦,將邏輯處理層提供API 封裝,對(duì)前臺(tái)呈現(xiàn)提供統(tǒng)一編程可擴(kuò)展的JSON 格式的JavaScript 調(diào)用接口;同時(shí)將前臺(tái)呈現(xiàn)調(diào)用的JSON 接口解析,調(diào)用邏輯處理層API 實(shí)現(xiàn)相應(yīng)功能。JSON 數(shù)據(jù)格式具有相對(duì)簡(jiǎn)單、易封裝解析、擴(kuò)展性強(qiáng)、讀寫(xiě)效率高、解析庫(kù)多等諸多優(yōu)點(diǎn),為呈現(xiàn)層與開(kāi)放服務(wù)之間提供高效的交互方式。

        基于C/C++的第三方組件豐富多樣,開(kāi)發(fā)者也可根據(jù)功能需求不斷調(diào)整,選擇并開(kāi)發(fā)所需組件及業(yè)務(wù)處理邏輯,使得開(kāi)放服務(wù)具備良好的復(fù)用性和擴(kuò)展性。

        2.3 呈現(xiàn)層

        混合應(yīng)用按照混合模式可分為重架構(gòu)混合模式和輕架構(gòu)混合模式。“重混”架構(gòu)依賴Native UI 的混合框架,按照“Web 不夠,就Native 來(lái)湊”的核心思路,提升交互體驗(yàn),但也帶來(lái)了顯著缺點(diǎn):Web 和Native 技術(shù)的交叉混雜讓開(kāi)發(fā)者的編程和調(diào)試都很不方便,也無(wú)法滿足跨平臺(tái)要求?!拜p混”架構(gòu)堅(jiān)持UI 部分必須用純Web技術(shù),完全采用H5 技術(shù);在底層的設(shè)備接口上,JavaScript 無(wú)法完成的原生部分,可以采用Native 技術(shù)來(lái)彌補(bǔ),也必須堅(jiān)持Native技術(shù)不去侵入U(xiǎn)I?!拜p混”架構(gòu)才是真正的HTML5 應(yīng)用架構(gòu),在技術(shù)上更輕量、成本更低、也更容易推廣,真正做到只需一次開(kāi)發(fā)跨平臺(tái)發(fā)布,是混合應(yīng)用技術(shù)發(fā)展的必然方向。

        按照“輕混”架構(gòu)設(shè)計(jì)理念,呈現(xiàn)層采用純Web 技術(shù)實(shí)現(xiàn),呈現(xiàn)邏輯由Html 和JavaScript 完成,最終在WebView 中顯示。通過(guò)調(diào)用開(kāi)放服務(wù)提供的接口實(shí)現(xiàn)與后臺(tái)服務(wù)器、與其他應(yīng)用之間的交互,并完成相關(guān)數(shù)據(jù)的本地存儲(chǔ)。從開(kāi)發(fā)層面實(shí)現(xiàn)“一次開(kāi)發(fā),多處運(yùn)行”的機(jī)制,成為真正適合跨平臺(tái)的開(kāi)發(fā)。

        3 該混合架構(gòu)的優(yōu)點(diǎn)與不足

        大多數(shù)的移動(dòng)應(yīng)用會(huì)依賴于后臺(tái)的Web 服務(wù)來(lái)實(shí)現(xiàn)大部分的業(yè)務(wù)邏輯,對(duì)網(wǎng)絡(luò)依賴嚴(yán)重。該架構(gòu)可以將功能相關(guān)業(yè)務(wù)邏輯在本地開(kāi)放服務(wù)中實(shí)現(xiàn),呈現(xiàn)業(yè)務(wù)所需媒體文件封裝到App 代碼中,存儲(chǔ)在設(shè)備本地。從而避免對(duì)網(wǎng)絡(luò)環(huán)境的依賴,實(shí)現(xiàn)特定場(chǎng)景無(wú)網(wǎng)絡(luò)環(huán)境下混合應(yīng)用的使用。采用該架構(gòu)呈現(xiàn)層開(kāi)發(fā)者只需掌握Web相關(guān)技術(shù)即可,中間層開(kāi)發(fā)者只需掌握開(kāi)放服務(wù)相關(guān)技術(shù),降低了同一款應(yīng)用開(kāi)發(fā)者需針對(duì)多個(gè)平臺(tái)掌握多種開(kāi)發(fā)技術(shù)的復(fù)雜度。

        混合模式開(kāi)發(fā)的移動(dòng)應(yīng)用相對(duì)原生應(yīng)用而言依然存在不足,HTML5 在調(diào)用終端硬件方面的能力還不是很強(qiáng),同時(shí)受限于WebView的渲染效率,體驗(yàn)稍有欠缺,同時(shí)在應(yīng)用調(diào)試、視頻編解碼、跨平臺(tái)兼容性等方面還存在問(wèn)題。開(kāi)發(fā)者必須充分利用HTML、CSS 和JavaScript 三個(gè)技術(shù),做好相應(yīng)優(yōu)化,才可構(gòu)建具有良好用戶體驗(yàn)的應(yīng)用,這也對(duì)開(kāi)發(fā)者也提出相應(yīng)的技術(shù)要求。

        4 結(jié)束語(yǔ)

        隨著移動(dòng)終端的不斷發(fā)展,移動(dòng)終端跨平臺(tái)應(yīng)用開(kāi)發(fā)逐漸成為開(kāi)發(fā)者的設(shè)計(jì)目標(biāo)。伴隨終端硬件處理能力、Web 技術(shù)、系統(tǒng)開(kāi)放性等不斷發(fā)展,以Web 為主的混合應(yīng)用終將成為移動(dòng)終端應(yīng)用發(fā)展的主流模式,使用戶可以以更快捷、更低成本的方式來(lái)享受各類應(yīng)用提供的服務(wù)。

        猜你喜歡
        跨平臺(tái)
        跨層級(jí)網(wǎng)絡(luò)、跨架構(gòu)、跨平臺(tái)的數(shù)據(jù)共享交換關(guān)鍵技術(shù)研究與系統(tǒng)建設(shè)
        一款游戲怎么掙到全平臺(tái)的錢(qián)?
        潛力雙跨平臺(tái):進(jìn)階:誰(shuí)將跨入下一個(gè)“十大”?
        跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
        基于C++語(yǔ)言的跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)
        基于C++語(yǔ)言的跨平臺(tái)軟件開(kāi)發(fā)
        移動(dòng)互聯(lián)網(wǎng)應(yīng)用跨平臺(tái)開(kāi)發(fā)
        一種虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)方法的研究
        基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
        基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測(cè)與診斷系統(tǒng)
        精品国产1区2区3区AV| 亚洲av无码专区国产不卡顿| 久久久久亚洲精品男人的天堂| 色欲人妻aaaaaaa无码| 精品国产拍国产天天人| 97久久香蕉国产线看观看| 九九精品视频在线观看| 国产精品国产三级国产专区5o| 最近亚洲精品中文字幕| 九九久久精品一区二区三区av | 99精品欧美一区二区三区美图| 丝袜美腿爆炒国产在线观看 | 久久综合五月天| 蜜桃av夺取一区二区三区| 中文字幕日本在线乱码| 久久黄色国产精品一区视频| 亚洲人成网站色7799| 免费看黄a级毛片| 国产高清无码在线| 一区二区三区四区四色av| 麻豆成人久久精品一区| 久久精品国产亚洲超碰av| 亚洲乱亚洲乱妇| 18禁免费无码无遮挡网站| 韩国主播av福利一区二区| 中文字幕亚洲精品一二三区| 午夜一区二区三区福利视频| 亚洲精品久久久www小说| 越猛烈欧美xx00动态图| 国产午夜福利精品久久2021| 国产亚洲sss在线观看| 被驯服人妻中文字幕日本| 国产精品髙潮呻吟久久av | 一区二区午夜视频在线观看| 久久久国产精品无码免费专区| 国产精品99精品无码视亚 | 精品人妻VA出轨中文字幕| 国产优质女主播在线观看| 丝袜美腿一区在线观看| 免费a级毛片在线播放| 三年片大全在线观看免费观看大全|