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

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

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

鴻蒙OS開發(fā):【一次開發(fā),多端部署】(工程管理)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-16 16:07 ? 次閱讀

工程管理

DevEco Studio的基本使用,請參考[DevEco Studio使用指南]。本章主要介紹如何使用DevEco Studio進(jìn)行多設(shè)備應(yīng)用開發(fā)。

說明: 本章的內(nèi)容基于DevEco Studio 3.1.1 Release版本進(jìn)行介紹,如您使用DevEco Studio其它版本,可能存在文檔與產(chǎn)品功能界面、操作不一致的情況,請以實(shí)際功能界面為準(zhǔn)。
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

工程創(chuàng)建

參考[創(chuàng)建系統(tǒng)工程],先創(chuàng)建出最基本的項(xiàng)目工程。可以看到DevEco Studio創(chuàng)建出的默認(rèn)工程,僅包含一個的entry類型的模塊。

zh-cn_image_0000001267274204

如果直接使用如下所示的平級目錄進(jìn)行模塊管理,工程邏輯結(jié)構(gòu)較混亂且模塊間的依賴關(guān)系不夠清晰,不利于開發(fā)及后期維護(hù)。

/application
├── common
├── feature1
├── feature2
├── featureN
├── wearable
├── default
└── productN

推薦使用本文[部署模型]小節(jié)中介紹的common、features、product三層工程結(jié)構(gòu)。工程結(jié)構(gòu)示例如下所示:

/application
 ├── common                  # 公共特性目錄
 │
 ├── features                # 功能模塊目錄
 │   ├── feature1            # 子功能
 │   ├── feature2            # 子功能2
 │   └── ...                 # 子功能n
 │
 └── product                 # 產(chǎn)品層目錄
     ├── wearable            # 智能穿戴泛類目錄
     ├── default             # 默認(rèn)設(shè)備泛類目錄
     └── ...

接下來將依次介紹如何新建Module、修改配置文件以及調(diào)整目錄,以實(shí)現(xiàn)“一多”推薦的“三層工程結(jié)構(gòu)”。

新建Module

參考[開發(fā)ohpm包]),新建三個ohpm模塊,分別命名為common、feature1、feature2。參考[添加/刪除Module],新建一個entry類型的模塊,假設(shè)命名為“wearable”(僅僅為了說明某一類產(chǎn)品)。示例如下:

zh-cn_image_0000001315434285

說明:

  • 在一個工程中同一個設(shè)備類型只支持一個Entry類型的模塊。
  • 在下一個小節(jié),我們將介紹如何修改Module的配置,包括Module的類型以及其支持的設(shè)備類型等。

修改Module配置

修改Module名稱

修改創(chuàng)建工程時默認(rèn)的entry模塊名稱。在該模塊上點(diǎn)擊鼠標(biāo)右鍵,依次選擇”Refactor -> Rename”,將名稱修改為default。

zh-cn_image_0000001315914185

修改Module類型及其設(shè)備類型

通過修改每個模塊中的配置文件(module.json5)對模塊進(jìn)行配置,配置文件中各字段含義詳見[配置文件說明]。

  • 將default模塊的deviceTypes配置為["default", "tablet"],同時將其type字段配置為entry。
    即default模塊編譯出的HAP在默認(rèn)設(shè)備和平板上安裝和運(yùn)行。
    zh-cn_image_0000001267914116
  • 將wearable模塊的deviceTypes配置為["wearable"],同時將其type字段配置為entry。 即wearable模塊編譯出的HAP僅在智能穿戴設(shè)備上安裝和運(yùn)行。
    zh-cn_image_0000001267514192

調(diào)整目錄結(jié)構(gòu)

調(diào)整目錄結(jié)構(gòu)

在工程根目錄(MyApplication)上點(diǎn)擊鼠標(biāo)右鍵,依次選擇“New -> Directory”新建子目錄。創(chuàng)建product和features兩個子目錄。

zh-cn_image_0000001266874320

用鼠標(biāo)左鍵將default目錄拖拽到新建的product目錄中,在IDE彈出的確認(rèn)窗口中,點(diǎn)擊“Refactor”即可。

zh-cn_image_0000001315714137

按照同樣的步驟,將wearable目錄放到product目錄中,將feature1和feature2放到features目錄中。

zh-cn_image_0000001316914105

修改依賴關(guān)系

回顧之前小節(jié)中關(guān)于“工程結(jié)構(gòu)”的介紹,我們推薦在common目錄中存放基礎(chǔ)公共代碼,features目錄中存放相對獨(dú)立的功能模塊代碼,product目錄中存放完全獨(dú)立的產(chǎn)品代碼。這樣在product目錄中依賴features和common中的公共代碼來實(shí)現(xiàn)功能,可以最大程度實(shí)現(xiàn)代碼復(fù)用。

配置依賴關(guān)系可以通過修改模塊中的oh-package.json文件。如下圖所示,通過修改default模塊中的oh-package.json文件,使其可以使用common、feature1和feature2模塊中的代碼。

zh-cn_image_0000001267274208

同樣的,修改feature1和feature2模塊中的oh-package.json文件,使其可以使用common模塊中的代碼。

修改oh-package.json文件后,請點(diǎn)擊右上角的“Sync Now”,否則改動不會生效。

引用ohpm包中的代碼

在[開發(fā)ohpm包]中,僅介紹了如何使用ohpm包中的頁面和資源,本小節(jié)以例子的形式補(bǔ)充介紹如何使用ohpm包中的類和函數(shù)。

示例如下:

  • 在common模塊中新增ComplexNumber類,用于表征復(fù)數(shù)(數(shù)學(xué)概念,由實(shí)部和虛部組成),該類包含toString()方法,將復(fù)數(shù)轉(zhuǎn)換為字符形式。
  • 在common模塊中新增Add函數(shù),用于計算并返回兩個數(shù)字的和。
  • 在default模塊中,使用common模塊新增的ComplexNumber類和Add函數(shù)。
  1. 在”common/src/main/ets”目錄中,按照需要新增文件和自定義類和函數(shù)。 zh-cn_image_0000001315434289
  2. 在”common/index.ets”文件中,申明需要export的類、函數(shù)的名稱及在當(dāng)前模塊中的位置,否則其它模塊無法使用。 zh-cn_image_0000001315914189
  3. 在default模塊中import和使用這些類和函數(shù)。注意提前在default模塊的oh-package.json文件中配置對common模塊的依賴關(guān)系。 zh-cn_image_0000001267914120

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

說明:
HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
如果需要將ohpm包發(fā)布供其他開發(fā)者使用,具體可參考[發(fā)布o(jì)hpm包]。

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    4

    瀏覽量

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

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4359
收藏 人收藏

    評論

    相關(guān)推薦

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

    的潛在用戶群體。個應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。"一次開發(fā),
    的頭像 發(fā)表于 08-30 10:25 ?2682次閱讀
    ?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 ?1305次閱讀
    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 ?628次閱讀
    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)用)案例

    本章通過個天氣應(yīng)用,介紹多應(yīng)用的整體開發(fā)過程,包括UX設(shè)計、工程管理及調(diào)試、頁面開發(fā)等。
    的頭像 發(fā)表于 05-15 15:42 ?964次閱讀
    <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)目

    本示例展示個天氣應(yīng)用界面,包括首頁、城市管理、添加城市、更新時間彈窗,體現(xiàn)一次開發(fā)多端部署
    的頭像 發(fā)表于 05-20 14:59 ?784次閱讀
    <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 ?644次閱讀
    <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 ?702次閱讀
    <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 ?4446次閱讀
    <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 ?2005次閱讀
    <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 ?1064次閱讀
    <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ī)技巧,碼上起航

    工程一次開發(fā)上架,即可多端按需部署。公共能力層支持網(wǎng)絡(luò)框架、工具類、數(shù)據(jù)管理等能力。特性層抽象出
    發(fā)表于 08-30 18:14

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

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

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

    華為開發(fā)者大會2021:鴻蒙系統(tǒng) 一次開發(fā) 多端部署 萬物互連 在華為
    的頭像 發(fā)表于 10-22 15:09 ?4467次閱讀
    華為<b class='flag-5'>開發(fā)</b>者大會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 ?2224次閱讀
    <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 ?887次閱讀
    <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頁面)