精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-14 15:20 ? 次閱讀

簡介

背景

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

開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

zh-cn_image_0000001267340890

定義及目標

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

目標 :支撐開發者快速高效的開發支持多種終端設備形態的應用,實現對不同設備兼容的同時,提供跨設備的流轉、遷移和協同的分布式體驗。

multi_device

為了實現“一多”的目標,需要解決兩個基礎問題:

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

從第4章開始將從UX設計、系統能力等角度,詳盡的解答上述問題。

說明:

  • 應用開發不僅包含應用頁面開發,還包括應用后端功能開發以及服務器端開發等。
  • 本文旨在指導開發者如何開發“一多”應用,服務器端開發不在本文探討范圍內。

基礎知識

為了更好的閱讀后面的章節,本小節主要介紹了一些基礎知識,方便讀者理解內容。

方舟開發框架

[方舟開發框架](簡稱:ArkUI)提供開發者進行應用UI開發時所必須的能力。

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

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

兩種開發范式的對比如下。

開發范式名稱語言生態UI更新方式適用場景適用人群
聲明式開發范式ArkTS語言數據驅動更新復雜度較大、團隊合作度較高的程序移動系統應用開發人員、系統應用開發人員
類Web開發范式JS語言數據驅動更新界面較為簡單的中小型應用和卡片Web前端開發人員

說明: 聲明式開發范式占用內存更少, 推薦開發者選用聲明式開發范式來搭建應用UI界面 。

應用程序包結構

在進行應用開發時,一個應用通常包含一個或多個Module。Module是應用/服務的基本功能單元,包含了源代碼、資源文件、第三方庫及應用/服務配置文件,每一個Module都可以獨立進行編譯和運行。

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

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

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

  • Entry類型的HAP:應用的主模塊。在同一個應用中,同一設備類型只支持一個Entry類型的HAP,通常用于實現應用的入口界面、入口圖標、主特性功能等。
  • Feature類型的HAP:應用的動態特性模塊。Feature類型的HAP通常用于實現應用的特性功能,一個應用程序包可以包含一個或多個Feature類型的HAP,也可以不包含。

說明: 關于Entry類型的HAP包、Feature類型的HAP包、HAR包、HSP包以及APP Pack的詳細介紹請參考[應用程序包結構說明]

部署模型

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

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

開發者可以從應用UX設計及應用功能兩個維度,結合具體的業務場景,考慮選擇哪種部署模型。當然,也可以借助設備類型分類,快速做出判斷。

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

  • 默認設備、平板
  • 車機、智慧屏
  • 智能穿戴
  • ……

對于相同泛類的設備,優先選擇部署模型A,對于不同泛類設備,優先選擇部署模型B。

說明:

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

工程結構

“一多”推薦在應用開發過程中使用如下的“三層工程結構”。

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

代碼工程結構抽象后一般如下所示:

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

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

說明:

  • 部署模型不同,相應的代碼工程結構也有差異。部署模型A和部署模型B的主要差異點集中在products層:部署模型A在products目錄下同一子目錄中做功能和特性集成;部署模型B在products目錄下不同子目錄中對不同的產品做差異化的功能和特性集成。
  • 開發階段應考慮 不同類型設備間最大程度的復用代碼 ,以減少開發及后續維護的工作量。
  • 整個代碼工程最終構建出一個[APP包],應用以APP包的形式發布到應用市場中。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 分布式
    +關注

    關注

    1

    文章

    809

    瀏覽量

    74363
  • 鴻蒙
    +關注

    關注

    56

    文章

    2261

    瀏覽量

    42433
收藏 人收藏

    評論

    相關推薦

    ?HarmonyOS"一次開發,多端部署"優秀實踐——玩機技巧

    的潛在用戶群體。個應用要在多類設備上提供統的內容,需要適配不同的屏幕尺寸和硬件,開發成本較高。"一次開發
    的頭像 發表于 08-30 10:25 ?2399次閱讀
    ?HarmonyOS"<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>"優秀實踐——玩機技巧

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

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

    HarmonyOS開發案例:【一次開發,多端部署-音樂專輯】

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

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

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

    鴻蒙OS開發:【一次開發,多端部署】(多天氣)項目

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

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

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

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

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

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

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

    鴻蒙OS開發:典型頁面場景【一次開發,多端部署】實戰(音樂專輯頁2)

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

    鴻蒙OS開發:典型頁面場景【一次開發,多端部署】實戰(設置典型頁面)

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

    HarmonyOS\"一次開發,多端部署\"優秀實踐——玩機技巧,碼上起航

    的潛在用戶群體。個應用要在多類設備上提供統的內容,需要適配不同的屏幕尺寸和硬件,開發成本較高。\"一次開發,
    發表于 08-30 18:14

    華為開發者大會2021:一次開發 多端部署

    一次開發 多端部署使能開發者從單設備生態跨入多設備生態!
    的頭像 發表于 10-22 15:09 ?1548次閱讀
    華為<b class='flag-5'>開發</b>者大會2021:<b class='flag-5'>一次</b><b class='flag-5'>開發</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b>

    華為開發者大會2021:軟件部總裁龔體 鴻蒙系統 一次開發 多端部署 萬物互連

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

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

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

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

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