• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于HarmonyOS應(yīng)用開(kāi)發(fā)的課程建設(shè)初探

      2022-03-11 12:39:22龍軍何暢趙東東
      電腦知識(shí)與技術(shù) 2022年1期
      關(guān)鍵詞:鴻蒙課程建設(shè)分布式

      龍軍 何暢 趙東東

      摘要:該文從分析華為公司最新開(kāi)始裝機(jī)商用的HarmonyOS 2系統(tǒng)的技術(shù)架構(gòu)入手,闡述HarmonyOS應(yīng)用程序的形態(tài)和Ability、Page、AbilitySlice、Intent等概念,比較Java UI框架和JS UI框架的特點(diǎn)及應(yīng)用方式,研究HarmonyOS的數(shù)據(jù)庫(kù)、映射、DDS等數(shù)據(jù)存儲(chǔ)和原子化服務(wù),最后針對(duì)HarmonyOS應(yīng)用開(kāi)發(fā)所涉及的知識(shí)和技術(shù),探索設(shè)計(jì)基礎(chǔ)、應(yīng)用、拓展三層次課程體系,培養(yǎng)學(xué)生的實(shí)踐操作能力。

      關(guān)鍵詞:HarmonyOS;鴻蒙;分布式;課程建設(shè)

      中圖分類號(hào):TP311? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

      2019年8月華為公司開(kāi)發(fā)的具有自主產(chǎn)權(quán)的開(kāi)源操作系統(tǒng)HarmonyOS(鴻蒙系統(tǒng))正式發(fā)布,2021年6月HarmonyOS 2及多款搭載HarmonyOS 2的新產(chǎn)品上線,用戶裝機(jī)量?jī)蓚€(gè)月超5000萬(wàn)。這是一款全新的基于微內(nèi)核的面向全場(chǎng)景的分布式操作系統(tǒng)[1],基于用一套系統(tǒng)適配手機(jī)、平板、智能穿戴、智慧屏、車機(jī)等多種終端形態(tài)的分布式理念,提供移動(dòng)辦公、運(yùn)動(dòng)健康、社交通信、媒體娛樂(lè)等全場(chǎng)景業(yè)務(wù)能力,將各類硬件根據(jù)需要隨意組裝,手機(jī)可以調(diào)用電視、電腦的大屏幕,電腦也可以調(diào)用手機(jī)的攝像頭拍照、掃碼[2]。

      1 HarmonyOS的技術(shù)概述

      HarmonyOS支持Java、XML、C/C++、JavaScript、CSS和HarmonyOS Markup Language(HML)等語(yǔ)言進(jìn)行應(yīng)用開(kāi)發(fā),有內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層四層,系統(tǒng)功能按“系統(tǒng)、子系統(tǒng)、功能/模塊”逐級(jí)展開(kāi)[3]。

      內(nèi)核層的內(nèi)核子系統(tǒng)是適配不同設(shè)備的OS內(nèi)核,驅(qū)動(dòng)子系統(tǒng)提供統(tǒng)一外設(shè)訪問(wèn)能力和驅(qū)動(dòng)開(kāi)發(fā)、管理框架,提供開(kāi)放的硬件生態(tài)。

      系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過(guò)框架層為應(yīng)用程序提供服務(wù)。其中系統(tǒng)基本能力子系統(tǒng)集提供分布式應(yīng)用在多設(shè)備上運(yùn)行、調(diào)度、遷移等操作的基礎(chǔ)能力;基礎(chǔ)軟件服務(wù)子系統(tǒng)集提供公共通用的軟件服務(wù);增強(qiáng)軟件服務(wù)子系統(tǒng)集提供針對(duì)不同設(shè)備、差異化的能力增強(qiáng)型軟件服務(wù);硬件服務(wù)子系統(tǒng)集提供硬件服務(wù)。

      框架層提供多語(yǔ)言的用戶程序框架和Ability框架,適用Java語(yǔ)言的Java UI框架和適用JS語(yǔ)言的JS UI框架,各種軟硬件服務(wù)對(duì)外開(kāi)放的多語(yǔ)言框架API。

      應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。應(yīng)用由一個(gè)或多個(gè)有UI界面的Feature Ability(FA)或無(wú)UI界面的Particle Ability(PA)組成。FA能與用戶交互,PA提供后臺(tái)運(yùn)行任務(wù)的能力和統(tǒng)一的數(shù)據(jù)訪問(wèn)抽象。FA在進(jìn)行用戶交互時(shí)由對(duì)應(yīng)的PA提供所需的后臺(tái)數(shù)據(jù)支撐。

      2 HarmonyOS的應(yīng)用

      HarmonyOS應(yīng)用程序是在設(shè)備操作系統(tǒng)上運(yùn)行、為用戶提供特定服務(wù)的程序,有安裝和免安裝兩種形態(tài)。應(yīng)用程序包以App Pack形式發(fā)布,由一個(gè)或多個(gè)HarmonyOS Ability Package(HAP)和描述每個(gè)HAP屬性的pack.info組成。HAP是Ability的部署包,由代碼、資源、第三方庫(kù)及應(yīng)用配置文件組成,有應(yīng)用主模塊entry和應(yīng)用動(dòng)態(tài)特性模塊feature兩類。entry指一個(gè)App中對(duì)于同一設(shè)備類型有且只有一個(gè)entry類型的HAP,可獨(dú)立安裝運(yùn)行,feature指一個(gè)App包含零個(gè)、一個(gè)或多個(gè)feature類型的HAP,只有包含Ability的HAP才能獨(dú)立運(yùn)行。

      Ability是應(yīng)用所具備能力的抽象,一個(gè)應(yīng)用可包含一個(gè)或多個(gè)Ability。HarmonyOS支持應(yīng)用以Ability為單位進(jìn)行部署。FA支持Page Ability,Page模板是FA唯一支持的模板,用于提供與用戶交互的能力。PA支持Service Ability和Data Ability,Service模板用于提供后臺(tái)運(yùn)行任務(wù)的能力,Data模板用于對(duì)外部提供統(tǒng)一的數(shù)據(jù)訪問(wèn)抽象。在配置文件config.json中注冊(cè)Ability時(shí),按Ability元素的type屬性值(page、service或data)確定Ability模板類型。

      一個(gè)Page實(shí)例可包含一組相關(guān)頁(yè)面,每個(gè)頁(yè)面用一個(gè)AbilitySlice實(shí)例表示,即一個(gè)Page有多個(gè)AbilitySlice,但Page進(jìn)入前臺(tái)時(shí)只展示一個(gè)AbilitySlice。用setMainRoute()方法指定默認(rèn)展示的AbilitySlice,用addActionRoute()方法配置一條路由規(guī)則以改變展示的AbilitySlice,通過(guò)Intent的Action實(shí)現(xiàn)從其他Page實(shí)例導(dǎo)航到該AbilitySlice。同一Page內(nèi)用present()或presentForResult()方法實(shí)現(xiàn)導(dǎo)航,Page間用startAbility()或startAbilityForResult()方法實(shí)現(xiàn)導(dǎo)航。

      Intent是對(duì)象間傳遞信息的載體,由Operation和Parameters構(gòu)成。Operation包括動(dòng)作Action、類別Entity、路徑Uri、處理Intent方式Flags、包描述BundleName、待啟動(dòng)Ability名稱AbilityName、運(yùn)行指定Ability設(shè)備ID的DeviceId。Parameters是支持自定義的數(shù)據(jù)結(jié)構(gòu),用來(lái)傳遞請(qǐng)求所需的額外信息。

      3 HarmonyOS的UI框架

      HarmonyOS提供了Java UI框架和JS UI框架兩種FA的UI開(kāi)發(fā)框架。Java UI框架提供了細(xì)粒度的UI編程接口,包括一部分Component和ComponentContainer的具體子類,有DirectionalLayout、DependentLayout等常用布局和文本、按鈕、圖片、列表等常用組件,通過(guò)組件進(jìn)行交互操作并獲得響應(yīng)。需要注意的是所有的UI操作必須在主線程進(jìn)行設(shè)置。

      JS UI框架提供了相對(duì)高層的UI描述,是跨設(shè)備的高性能UI開(kāi)發(fā)框架,用類HTML和CSS聲明式編程語(yǔ)言開(kāi)發(fā)頁(yè)面布局和頁(yè)面樣式,支持聲明式編程和跨設(shè)備多態(tài)UI,頁(yè)面業(yè)務(wù)邏輯支持ECMAScript規(guī)范的JavaScript語(yǔ)言,聲明式編程避免編寫(xiě)UI狀態(tài)切換的代碼,視圖配置信息更直觀、應(yīng)用開(kāi)發(fā)更簡(jiǎn)單。JS UI框架支持純JS、JS+Java混合語(yǔ)言開(kāi)發(fā),JS FA是基于JS或JS+Java混合開(kāi)發(fā)的FA。

      Java UI框架可以在XML中聲明UI布局或在代碼中創(chuàng)建布局的方式編寫(xiě),兩者創(chuàng)建的布局沒(méi)有本質(zhì)差別,用XML方式更簡(jiǎn)便直觀。用XML方式編寫(xiě)頁(yè)面時(shí),XML文件放在main\resources\base\layout目錄中,使用時(shí)需要在main\java\包\slice目錄中相應(yīng)Java文件代碼的onStart()方法中用super.setUIContent(ResourceTable.Layout_布局文件名)加載XML布局,并通過(guò)findComponentById(ResourceTable.組件Id)方法創(chuàng)建布局文件中的組件對(duì)象。用代碼創(chuàng)建布局時(shí),在Java文件的onStart()方法中用DependentLayout 布局對(duì)象名 = new DependentLayout(this);聲明并創(chuàng)建布局對(duì)象的實(shí)例,再依次設(shè)置布局的相關(guān)屬性,用代碼:組件類型 組件對(duì)象名 = new 組件類型(this);創(chuàng)建組件對(duì)象,并用組件對(duì)象名設(shè)置相關(guān)屬性及應(yīng)用。

      JS UI框架中頁(yè)面文件通常放在main\js\default\pages\index目錄中,由同名的hml、css、js三個(gè)文件構(gòu)成。hml文件用HML標(biāo)記定義頁(yè)面布局、頁(yè)面中的組件和層級(jí)關(guān)系,指定組件的類并綁定事件,css文件定義頁(yè)面的樣式,js文件定義頁(yè)面中諸如數(shù)據(jù)綁定、事件處理等業(yè)務(wù)邏輯。通過(guò)AceAbility類中setInstanceName()接口設(shè)置該Ability的實(shí)例資源來(lái)加載JS FA,并通過(guò)AceAbility窗口顯示和管理全局應(yīng)用生命周期。

      JS UI框架提供了JS FA調(diào)用Java PA的機(jī)制,在HarmonyOS引擎內(nèi)提供一種通道來(lái)傳遞方法調(diào)用、數(shù)據(jù)返回和事件上報(bào),根據(jù)需要自行實(shí)現(xiàn)FA和PA兩端的接口完成對(duì)應(yīng)的功能邏輯,包含遠(yuǎn)端調(diào)用Ability和本地調(diào)用Internal Ability兩種方式。JS端與Java端通過(guò)接口擴(kuò)展機(jī)制進(jìn)行通信,通過(guò)bundleName和abilityName來(lái)進(jìn)行關(guān)聯(lián)。FeatureAbility Plugin收到JS調(diào)用請(qǐng)求后,系統(tǒng)根據(jù)JS指定的abilityType選擇對(duì)應(yīng)的Ability或Internal Ability方式進(jìn)行處理。在onRemoteRequest()中實(shí)現(xiàn)PA提供的業(yè)務(wù)邏輯,不同業(yè)務(wù)通過(guò)業(yè)務(wù)碼區(qū)分。

      4 HarmonyOS的數(shù)據(jù)存儲(chǔ)和原子化服務(wù)

      HarmonyOS支持單設(shè)備的各種結(jié)構(gòu)化數(shù)據(jù)的持久化和跨設(shè)備數(shù)據(jù)的同步、共享及搜索功能。本地應(yīng)用數(shù)據(jù)管理用SQLite作為持久化存儲(chǔ)引擎,基于SQLite組件對(duì)外提供一系列增刪改查接口,也可直接用SQL語(yǔ)句實(shí)現(xiàn)復(fù)雜應(yīng)用。對(duì)象關(guān)系映射數(shù)據(jù)庫(kù)是基于SQLite的數(shù)據(jù)庫(kù)框架,屏蔽底層的SQL操作,針對(duì)實(shí)體和關(guān)系提供了一系列面向?qū)ο蟮慕涌?,以操作?duì)象的形式操作數(shù)據(jù)庫(kù)。還有用Key-Value結(jié)構(gòu)的數(shù)據(jù)進(jìn)行存取和持久化操作的輕量級(jí)數(shù)據(jù)存儲(chǔ),運(yùn)行時(shí)數(shù)據(jù)加載在內(nèi)存中,訪問(wèn)速度快、存取效率高。

      分布式數(shù)據(jù)服務(wù)通過(guò)調(diào)用分布式數(shù)據(jù)接口,為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫(kù)數(shù)據(jù)分布式的能力。通過(guò)結(jié)合賬號(hào)、應(yīng)用和數(shù)據(jù)庫(kù)三元組,分布式數(shù)據(jù)服務(wù)對(duì)不同應(yīng)用的數(shù)據(jù)進(jìn)行隔離,保證不同應(yīng)用間的數(shù)據(jù)不能通過(guò)分布式數(shù)據(jù)服務(wù)相互訪問(wèn)。在通過(guò)可信認(rèn)證的設(shè)備間,分布式數(shù)據(jù)服務(wù)支持應(yīng)用數(shù)據(jù)相互同步,為用戶提供在多種終端設(shè)備上最終一致的數(shù)據(jù)訪問(wèn)體驗(yàn)。把手機(jī)的內(nèi)核級(jí)安全能力擴(kuò)展到其他終端,進(jìn)而提升全場(chǎng)景設(shè)備的安全性,通過(guò)設(shè)備能力互助,共同抵御攻擊,保障智能家居網(wǎng)絡(luò)安全[4]。

      原子化服務(wù)是HarmonyOS提供的一種面向未來(lái)的服務(wù)提供方式,基于HarmonyOS API,是有獨(dú)立入口的、免安裝的、可為用戶提供一個(gè)或多個(gè)便捷服務(wù)的用戶應(yīng)用程序形態(tài),應(yīng)用形態(tài)更加輕量、入口更豐富、分發(fā)更精準(zhǔn)。支持運(yùn)行在1+8+N設(shè)備上,由1個(gè)或多個(gè)HAP包組成,1個(gè)HAP包對(duì)應(yīng)1個(gè)FA或PA,每個(gè)FA或PA均可獨(dú)立運(yùn)行,完成1個(gè)特定功能,1個(gè)或多個(gè)功能(對(duì)應(yīng)FA或PA)完成1個(gè)特定服務(wù)。

      5 課程體系建設(shè)

      通過(guò)研究HarmonyOS的技術(shù)架構(gòu)和應(yīng)用開(kāi)發(fā)所需的技術(shù),首先要有一定的軟件項(xiàng)目設(shè)計(jì)、開(kāi)發(fā)、管理及文檔編寫(xiě)能力,熟悉HTML、XML等標(biāo)記語(yǔ)言和JSON數(shù)據(jù)格式,熟悉Java和JS語(yǔ)言并進(jìn)行軟件開(kāi)發(fā),掌握CSS語(yǔ)法和規(guī)則,用面向華為終端全場(chǎng)景多設(shè)備的一站式集成開(kāi)發(fā)工具DevEco Studio進(jìn)行應(yīng)用開(kāi)發(fā)。實(shí)際工作中通常會(huì)同時(shí)使用JS和Java語(yǔ)言開(kāi)發(fā),用JS來(lái)制作應(yīng)用的UI,用Java開(kāi)發(fā)應(yīng)用的邏輯,用JS FA調(diào)用Java PA。最后通過(guò)HarmonyOS IDL實(shí)現(xiàn)不同設(shè)備間的跨進(jìn)程通信,即在一個(gè)設(shè)備上訪問(wèn)另一設(shè)備的進(jìn)程或者調(diào)用另一設(shè)備的方法,實(shí)現(xiàn)多設(shè)備的協(xié)同。

      設(shè)計(jì)基于HarmonyOS應(yīng)用開(kāi)發(fā)的教學(xué)體系時(shí),針對(duì)HarmonyOS分布式應(yīng)用開(kāi)發(fā)涉及面廣、針對(duì)性強(qiáng)、技術(shù)要求高的特點(diǎn),要強(qiáng)化軟件工程、Java語(yǔ)言、Web前端和服務(wù)器端開(kāi)發(fā)等相關(guān)基礎(chǔ)知識(shí)的學(xué)習(xí),突出HarmonyOS應(yīng)用基礎(chǔ)開(kāi)發(fā)技能的訓(xùn)練,最終進(jìn)行跨語(yǔ)言、跨網(wǎng)絡(luò)、跨設(shè)備的綜合性分布式應(yīng)用系統(tǒng)開(kāi)發(fā)能力的培養(yǎng)。課程體系可參考圖2。

      HarmonyOS的誕生打破了操作系統(tǒng)的壟斷,讓中國(guó)軟件第一次步入全球頂尖操作系統(tǒng)的競(jìng)爭(zhēng)行列,對(duì)比安卓系統(tǒng),其運(yùn)行速度更快更流暢;對(duì)比 iOS 系統(tǒng),手機(jī)鴻蒙更省電[5]。HarmonyOS對(duì)華為公司乃至中國(guó),都具有極其重要的戰(zhàn)略意義。對(duì)于高校來(lái)說(shuō),應(yīng)抓住這一歷史機(jī)遇,適時(shí)進(jìn)行相關(guān)課程的改革,建立起基于HarmonyOS的基礎(chǔ)、應(yīng)用、拓展三個(gè)層次的課程體系,在教學(xué)實(shí)踐中不斷優(yōu)化和發(fā)展。

      參考文獻(xiàn):

      [1] 李艷,劉丹,田小東,等.HarmonyOS特點(diǎn)與應(yīng)用前景分析[J].通信與信息技術(shù),2019(5):85-87.

      [2] 文華.手機(jī)版鴻蒙來(lái)了 它到底能做什么?[J].通信世界,2020(34):34-35.

      [3] 華為.HarmonyOS Developer文檔[EB/OL].[2021-07-30].https://developer.harmonyos.com/cn/documentation.

      [4] 宋奇.華為HarmonyOS 2.0不一樣的體驗(yàn)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2020,46(18):72.

      [5] 李沖.鴻蒙系統(tǒng):萬(wàn)物互聯(lián)將成現(xiàn)實(shí)[J].華東科技,2021(7):14-15.

      【通聯(lián)編輯:梁書(shū)】

      收稿日期:2021-08-24

      基金項(xiàng)目:??诮?jīng)濟(jì)學(xué)院校級(jí)項(xiàng)目《基于“1+X”Web前端開(kāi)發(fā)人才培養(yǎng)模式的構(gòu)建與實(shí)踐》(Hjyj2020031)

      作者簡(jiǎn)介:龍軍(1971—),男,海口經(jīng)濟(jì)學(xué)院副教授,研究方向?yàn)橛?jì)算機(jī)應(yīng)用。

      3078500338235

      猜你喜歡
      鴻蒙課程建設(shè)分布式
      奇思妙想(4)
      鴻蒙:打破安卓壟斷 所有權(quán)歸屬國(guó)家
      鴻蒙來(lái)了
      金橋(2021年7期)2021-07-22 01:55:34
      華為一大批鴻蒙商標(biāo)等待審查
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      “誤差理論與數(shù)據(jù)處理”課程建設(shè)的實(shí)踐與思考
      科技視界(2016年21期)2016-10-17 18:17:51
      基于卓越計(jì)劃的金屬結(jié)構(gòu)材料課程實(shí)踐化改革與建設(shè)
      資源、生態(tài)與環(huán)境學(xué)科群體系下普通地質(zhì)學(xué)課程建設(shè)思考
      中高職一體化課程體系建設(shè)的探索與實(shí)踐
      成才之路(2016年25期)2016-10-08 10:20:01
      盐山县| 嘉鱼县| 固安县| 太原市| 揭西县| 苗栗市| 多伦县| 新蔡县| 双流县| 茌平县| 乡城县| 阿合奇县| 山西省| 丹巴县| 东兴市| 封丘县| 揭西县| 诸暨市| 蓬安县| 辰溪县| 揭西县| 通化县| 七台河市| 阳泉市| 家居| 榆林市| 拉萨市| 新野县| 札达县| 公安县| 漳浦县| 金平| 张家界市| 沧州市| 呈贡县| 瓦房店市| 泸西县| 呼和浩特市| 宁河县| 上思县| 自贡市|