99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開發(fā):【一次開發(fā),多端部署】(簡介)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-14 15:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

背景

隨著終端設(shè)備形態(tài)日益多樣化,分布式技術(shù)逐漸打破單一硬件邊界,一個(gè)應(yīng)用或服務(wù),可以在不同的硬件設(shè)備之間隨意調(diào)用、互助共享,讓用戶享受無縫的全場景體驗(yàn)。而作為應(yīng)用開發(fā)者,廣泛的設(shè)備類型也能為應(yīng)用帶來廣大的潛在用戶群體。但是如果一個(gè)應(yīng)用需要在多個(gè)設(shè)備上提供同樣的內(nèi)容,則需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。OpenHarmony系統(tǒng)面向多終端提供了“一次開發(fā),多端部署”(后文中簡稱為“一多”)的能力,讓開發(fā)者可以基于一種設(shè)計(jì),高效構(gòu)建多端可運(yùn)行的應(yīng)用。

開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

zh-cn_image_0000001267340890

定義及目標(biāo)

定義 :一套代碼工程,一次開發(fā)上架,多端按需部署。

目標(biāo) :支撐開發(fā)者快速高效的開發(fā)支持多種終端設(shè)備形態(tài)的應(yīng)用,實(shí)現(xiàn)對(duì)不同設(shè)備兼容的同時(shí),提供跨設(shè)備的流轉(zhuǎn)、遷移和協(xié)同的分布式體驗(yàn)。

multi_device

為了實(shí)現(xiàn)“一多”的目標(biāo),需要解決兩個(gè)基礎(chǔ)問題:

  • 不同設(shè)備間的屏幕尺寸、色彩風(fēng)格等存在差異,頁面如何適配。
  • 不同設(shè)備的系統(tǒng)能力有差異,如智能穿戴設(shè)備是否具備定位能力、智慧屏是否具備攝像頭等,功能如何兼容。

從第4章開始將從UX設(shè)計(jì)、系統(tǒng)能力等角度,詳盡的解答上述問題。

說明:

  • 應(yīng)用開發(fā)不僅包含應(yīng)用頁面開發(fā),還包括應(yīng)用后端功能開發(fā)以及服務(wù)器端開發(fā)等。
  • 本文旨在指導(dǎo)開發(fā)者如何開發(fā)“一多”應(yīng)用,服務(wù)器端開發(fā)不在本文探討范圍內(nèi)。

基礎(chǔ)知識(shí)

為了更好的閱讀后面的章節(jié),本小節(jié)主要介紹了一些基礎(chǔ)知識(shí),方便讀者理解內(nèi)容。

方舟開發(fā)框架

[方舟開發(fā)框架](簡稱:ArkUI)提供開發(fā)者進(jìn)行應(yīng)用UI開發(fā)時(shí)所必須的能力。

方舟開發(fā)框架提供了兩種開發(fā)范式,分別是基于JS擴(kuò)展的類Web開發(fā)范式(后文中簡稱為“類Web開發(fā)范式”)和基于ArkTS的聲明式開發(fā)范式(后文中簡稱為“聲明式開發(fā)范式”)。

  • 聲明式開發(fā)范式 :采用TS語言并進(jìn)行聲明式UI語法擴(kuò)展,從組件、動(dòng)效和狀態(tài)管理三個(gè)維度提供了UI繪制能力。UI開發(fā)更接近自然語義的編程方式,讓開發(fā)者直觀地描述UI界面,不必關(guān)心框架如何實(shí)現(xiàn)UI繪制和渲染,實(shí)現(xiàn)極簡高效開發(fā)。同時(shí),選用有類型標(biāo)注的TS語言,引入編譯期的類型校驗(yàn),更適用大型的應(yīng)用開發(fā)。
  • 類Web開發(fā)范式 :采用經(jīng)典的HML、CSS、JavaScript三段式開發(fā)方式。使用HML標(biāo)簽文件進(jìn)行布局搭建,使用CSS文件進(jìn)行樣式描述,使用JavaScript文件進(jìn)行邏輯處理。UI組件與數(shù)據(jù)之間通過單向數(shù)據(jù)綁定的方式建立關(guān)聯(lián),當(dāng)數(shù)據(jù)發(fā)生變化時(shí),UI界面自動(dòng)觸發(fā)更新。此種開發(fā)方式,更接近Web前端開發(fā)者的使用習(xí)慣,快速將已有的Web應(yīng)用改造成方舟開發(fā)框架應(yīng)用。主要適用于界面較為簡單的中小型應(yīng)用開發(fā)。

兩種開發(fā)范式的對(duì)比如下。

開發(fā)范式名稱語言生態(tài)UI更新方式適用場景適用人群
聲明式開發(fā)范式ArkTS語言數(shù)據(jù)驅(qū)動(dòng)更新復(fù)雜度較大、團(tuán)隊(duì)合作度較高的程序移動(dòng)系統(tǒng)應(yīng)用開發(fā)人員、系統(tǒng)應(yīng)用開發(fā)人員
類Web開發(fā)范式JS語言數(shù)據(jù)驅(qū)動(dòng)更新界面較為簡單的中小型應(yīng)用和卡片Web前端開發(fā)人員

說明: 聲明式開發(fā)范式占用內(nèi)存更少, 更推薦開發(fā)者選用聲明式開發(fā)范式來搭建應(yīng)用UI界面 。

應(yīng)用程序包結(jié)構(gòu)

在進(jìn)行應(yīng)用開發(fā)時(shí),一個(gè)應(yīng)用通常包含一個(gè)或多個(gè)Module。Module是應(yīng)用/服務(wù)的基本功能單元,包含了源代碼、資源文件、第三方庫及應(yīng)用/服務(wù)配置文件,每一個(gè)Module都可以獨(dú)立進(jìn)行編譯和運(yùn)行。

Module分為“Ability”和“Library”兩種類型:

  • “Ability”類型的Module編譯后生成HAP包。
  • “Library”類型的Module編譯后生成[HAR包]或[HSP包]。

應(yīng)用以APP Pack形式發(fā)布,其包含一個(gè)或多個(gè)HAP包。HAP是應(yīng)用安裝的基本單位,HAP可以分為Entry和Feature兩種類型:

  • Entry類型的HAP:應(yīng)用的主模塊。在同一個(gè)應(yīng)用中,同一設(shè)備類型只支持一個(gè)Entry類型的HAP,通常用于實(shí)現(xiàn)應(yīng)用的入口界面、入口圖標(biāo)、主特性功能等。
  • Feature類型的HAP:應(yīng)用的動(dòng)態(tài)特性模塊。Feature類型的HAP通常用于實(shí)現(xiàn)應(yīng)用的特性功能,一個(gè)應(yīng)用程序包可以包含一個(gè)或多個(gè)Feature類型的HAP,也可以不包含。

說明: 關(guān)于Entry類型的HAP包、Feature類型的HAP包、HAR包、HSP包以及APP Pack的詳細(xì)介紹請(qǐng)參考[應(yīng)用程序包結(jié)構(gòu)說明]

部署模型

“一多”有兩種部署模型:

  • 部署模型A :不同類型的設(shè)備上按照一定的工程結(jié)構(gòu)組織方式,通過一次編譯生成相同的HAP(或HAP組合)。
  • 部署模型B :不同類型的設(shè)備上按照一定的工程結(jié)構(gòu)組織方式,通過一次編譯生成不同的HAP(或HAP組合)。

開發(fā)者可以從應(yīng)用UX設(shè)計(jì)及應(yīng)用功能兩個(gè)維度,結(jié)合具體的業(yè)務(wù)場景,考慮選擇哪種部署模型。當(dāng)然,也可以借助設(shè)備類型分類,快速做出判斷。

從屏幕尺寸、輸入方式及交互距離三個(gè)維度考慮,可以將常用類型的設(shè)備分為不同泛類:

  • 默認(rèn)設(shè)備、平板
  • 車機(jī)、智慧屏
  • 智能穿戴
  • ……

對(duì)于相同泛類的設(shè)備,優(yōu)先選擇部署模型A,對(duì)于不同泛類設(shè)備,優(yōu)先選擇部署模型B。

說明:

  • 應(yīng)用在不同泛類設(shè)備上的UX設(shè)計(jì)或功能相似時(shí),可以使用部署模型A。
  • 應(yīng)用在同一泛類不同類型設(shè)備上UX設(shè)計(jì)或功能差異非常大時(shí),可以使用部署模型B,但同時(shí)也應(yīng)審視應(yīng)用的UX設(shè)計(jì)及功能規(guī)劃是否合理。
  • 本小節(jié)引入部署模型A和部署模型B的概念是為了方便開發(fā)者理解。實(shí)際上在開發(fā)多設(shè)備應(yīng)用時(shí),如果目標(biāo)設(shè)備類型較多,往往是部署模型A和部署模型B混合使用。
  • 不管采用哪種部署模型,都應(yīng)該采用一次編譯。

工程結(jié)構(gòu)

“一多”推薦在應(yīng)用開發(fā)過程中使用如下的“三層工程結(jié)構(gòu)”。

  • common(公共能力層):用于存放公共基礎(chǔ)能力集合(如工具庫、公共配置等)。
    common層可編譯成一個(gè)或多個(gè)HAR包或HSP包(HAR中的代碼和資源跟隨使用方編譯,如果有多個(gè)使用方,它們的編譯產(chǎn)物中會(huì)存在多份相同拷貝;而HSP中的代碼和資源可以獨(dú)立編譯,運(yùn)行時(shí)在一個(gè)進(jìn)程中代碼也只會(huì)存在一份),其只可以被products和features依賴,不可以反向依賴。
  • features(基礎(chǔ)特性層):用于存放基礎(chǔ)特性集合(如應(yīng)用中相對(duì)獨(dú)立的各個(gè)功能的UI及業(yè)務(wù)邏輯實(shí)現(xiàn)等)。
    各個(gè)feature高內(nèi)聚、低耦合、可定制,供產(chǎn)品靈活部署。不需要單獨(dú)部署的feature通常編譯為HAR包或HSP包,供products或其它feature使用,但是不能反向依賴products層。需要單獨(dú)部署的feature通常編譯為Feature類型的HAP包,和products下Entry類型的HAP包進(jìn)行組合部署。features層可以橫向調(diào)用及依賴common層。
  • products(產(chǎn)品定制層):用于針對(duì)不同設(shè)備形態(tài)進(jìn)行功能和特性集成。
    products層各個(gè)子目錄各自編譯為一個(gè)Entry類型的HAP包,作為應(yīng)用主入口。products層不可以橫向調(diào)用。

代碼工程結(jié)構(gòu)抽象后一般如下所示:

/application
├── common                  # 可選。公共能力層, 編譯為HAR包或HSP包
├── features                # 可選?;A(chǔ)特性層
│   ├── feature1            # 子功能1, 編譯為HAR包或HSP包或Feature類型的HAP包
│   ├── feature2            # 子功能2, 編譯為HAR包或HSP包或Feature類型的HAP包
│   └── ...
└── products                # 必選。產(chǎn)品定制層
    ├── wearable            # 智能穿戴泛類目錄, 編譯為Entry類型的HAP包
    ├── default             # 默認(rèn)設(shè)備泛類目錄, 編譯為Entry類型的HAP包
    └── ...
    
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151450.png

說明:

  • 部署模型不同,相應(yīng)的代碼工程結(jié)構(gòu)也有差異。部署模型A和部署模型B的主要差異點(diǎn)集中在products層:部署模型A在products目錄下同一子目錄中做功能和特性集成;部署模型B在products目錄下不同子目錄中對(duì)不同的產(chǎn)品做差異化的功能和特性集成。
  • 開發(fā)階段應(yīng)考慮 不同類型設(shè)備間最大程度的復(fù)用代碼 ,以減少開發(fā)及后續(xù)維護(hù)的工作量。
  • 整個(gè)代碼工程最終構(gòu)建出一個(gè)[APP包],應(yīng)用以APP包的形式發(fā)布到應(yīng)用市場中。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 分布式
    +關(guān)注

    關(guān)注

    1

    文章

    998

    瀏覽量

    75438
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2623

    瀏覽量

    44077
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ?HarmonyOS"一次開發(fā),多端部署"優(yōu)秀實(shí)踐——玩機(jī)技巧

    的潛在用戶群體。個(gè)應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。"一次開發(fā),
    的頭像 發(fā)表于 08-30 10:25 ?3595次閱讀
    ?HarmonyOS"<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>"優(yōu)秀實(shí)踐——玩機(jī)技巧

    HarmonyOS開發(fā)案例:【一次開發(fā),多端部署(視頻應(yīng)用)】

    者提供了“一次開發(fā),多端部署”的系統(tǒng)能力,讓開發(fā)者可以基于一次
    的頭像 發(fā)表于 05-11 15:41 ?2104次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>(視頻應(yīng)用)】

    HarmonyOS開發(fā)案例:【一次開發(fā)多端部署-音樂專輯】

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)、多端部署音樂專輯頁面。
    的頭像 發(fā)表于 05-13 16:48 ?1100次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>-音樂專輯】

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(天氣應(yīng)用)案例

    本章通過個(gè)天氣應(yīng)用,介紹多應(yīng)用的整體開發(fā)過程,包括UX設(shè)計(jì)、工程管理及調(diào)試、頁面開發(fā)等。
    的頭像 發(fā)表于 05-15 15:42 ?1522次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(天氣應(yīng)用)案例

    鴻蒙OS開發(fā):【一次開發(fā)多端部署】(多天氣)項(xiàng)目

    本示例展示個(gè)天氣應(yīng)用界面,包括首頁、城市管理、添加城市、更新時(shí)間彈窗,體現(xiàn)一次開發(fā),多端部署的能力。
    的頭像 發(fā)表于 05-20 14:59 ?1290次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項(xiàng)目

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(音樂專輯主頁)

    本示例使用一次開發(fā)多端部署中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-21 14:48 ?1223次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯主頁)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(音樂專輯頁面)

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)、多端部署音樂專輯頁面。
    的頭像 發(fā)表于 05-25 16:21 ?1299次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯頁面)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(視頻應(yīng)用)

    者提供了“一次開發(fā),多端部署”的系統(tǒng)能力,讓開發(fā)者可以基于一次
    的頭像 發(fā)表于 05-25 16:29 ?5090次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(視頻應(yīng)用)

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā)多端部署】實(shí)戰(zhàn)(音樂專輯頁2)

    本示例使用[一次開發(fā)多端部署]中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-25 16:47 ?2556次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(音樂專輯頁2)

    鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實(shí)戰(zhàn)(設(shè)置典型頁面)

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-27 09:36 ?1606次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(設(shè)置典型頁面)

    HarmonyOS\"一次開發(fā),多端部署\"優(yōu)秀實(shí)踐——玩機(jī)技巧,碼上起航

    的潛在用戶群體。個(gè)應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。\"一次開發(fā),
    發(fā)表于 08-30 18:14

    華為開發(fā)者大會(huì)2021:一次開發(fā) 多端部署

    一次開發(fā) 多端部署使能開發(fā)者從單設(shè)備生態(tài)跨入多設(shè)備生態(tài)!
    的頭像 發(fā)表于 10-22 15:09 ?1815次閱讀
    華為<b class='flag-5'>開發(fā)</b>者大會(huì)2021:<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b>

    華為開發(fā)者大會(huì)2021:軟件部總裁龔體 鴻蒙系統(tǒng) 一次開發(fā) 多端部署 萬物互連

    華為開發(fā)者大會(huì)2021:鴻蒙系統(tǒng) 一次開發(fā) 多端部署 萬物互連 在華為
    的頭像 發(fā)表于 10-22 15:09 ?4879次閱讀
    華為<b class='flag-5'>開發(fā)</b>者大會(huì)2021:軟件部總裁龔體 <b class='flag-5'>鴻蒙</b>系統(tǒng) <b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b> 萬物互連

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(多設(shè)備自適應(yīng)能力)簡單介紹

    本示例是《一次開發(fā),多端部署》的配套示例代碼,展示了[頁面開發(fā)多能力],包括自適應(yīng)布局、響應(yīng)
    的頭像 發(fā)表于 05-21 14:59 ?3204次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(多設(shè)備自適應(yīng)能力)簡單介紹

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】( 設(shè)置app頁面)

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-21 14:56 ?1774次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置app頁面)