DevEco Studio 工程管理全指南

一、工程概述(Project Overview)

1. 工程基本概念

工程(Project):開發(fā)應(yīng)用的基本組織單位

模塊(Module):工程的功能組成部分

Ability:應(yīng)用的功能單元(UIAbility 或 ServiceAbility)

HAP(Harmony Ability Package):應(yīng)用的部署包

2. 工程生命周期

二、工程結(jié)構(gòu)(Project Structure)

1. 典型工程結(jié)構(gòu)

MyProject/

├── .deveco/? ? ? ? ? ? # IDE 配置文件

├── entry/? ? ? ? ? ? ? # 主模塊

│? ├── src/

│? │? ├── main/

│? │? │? ├── ets/? ? # ArkTS 代碼

│? │? │? │? ├── pages/? ? ? # 頁面組件

│? │? │? │? ├── app.ets? ? ? # 應(yīng)用入口

│? │? │? │? └── ...

│? │? │? ├── resources/? ? ? # 資源文件

│? │? │? │? ├── base/

│? │? │? │? ├── en_US/

│? │? │? │? └── ...

│? │? │? └── module.json5? ? # 模塊配置

│? ├── build-profile.json5? ? ? # 模塊構(gòu)建配置

│? └── hvigorfile.ts? ? ? ? ? ? # 構(gòu)建腳本

├── library/? ? ? ? ? ? # 共享庫模塊(可選)

├── build-profile.json5 # 工程級(jí)構(gòu)建配置

├── hvigorfile.ts? ? ? # 工程級(jí)構(gòu)建腳本

└── oh-package.json5? ? # 依賴管理

2、工程目錄結(jié)構(gòu):Stage 與 FA 模型對(duì)比

?1. Stage 模型(ArkTS 開發(fā),推薦)

Project

├─ .hvigor/? ? ? ? ? ? ? # 構(gòu)建腳本(自動(dòng)生成)

├─ AppScope/? ? ? ? ? ? ? # 應(yīng)用全局配置

│? └─ app.json5? ? ? ? ? # 應(yīng)用級(jí)配置(多模塊管理、權(quán)限聲明)

├─ entry/? ? ? ? ? ? ? ? # 主模塊(必選,生成 Entry.hap)

│? ├─ src/main/ets/? ? ? # ArkTS 源碼

│? │? ├─ entryability/? ? # 應(yīng)用入口(生命周期管理)

│? │? └─ pages/? ? ? ? ? # 頁面組件(如 Index.ets)

│? ├─ src/main/resources/? # 資源文件(圖形、字符串、布局)

│? │? ├─ base/element/? ? # 結(jié)構(gòu)化資源(color.json、string.json)

│? │? └─ rawfile/? ? ? ? # 原始資源(不自動(dòng)適配設(shè)備,如字體文件)

│? └─ module.json5? ? ? ? # 模塊配置(HAP 信息、設(shè)備適配)

├─ featureA/? ? ? ? ? ? ? # 動(dòng)態(tài)特性模塊(可選,生成 FeatureA.hap)

│? └─ ...? ? ? ? ? ? ? ? # 結(jié)構(gòu)同 entry 模塊

├─ oh_modules/? ? ? ? ? ? # 三方庫依賴(通過 ohpm 安裝)

└─ oh-package.json5? ? ? # 全局依賴配置(管理三方包版本)

2. FA 模型(JS 開發(fā),兼容舊項(xiàng)目)

Project

├─ entry/? ? ? ? ? ? ? ? # 主模塊

│? ├─ src/main/js/? ? ? ? # JS 源碼

│? │? ├─ MainAbility/? ? # 入口組件(生命周期)

│? │? └─ pages/? ? ? ? ? # 頁面(如 index.js)

│? └─ config.json? ? ? ? # 模塊配置(類似 module.json5)

└─ ...? ? ? ? ? ? ? ? ? ? # 資源與依賴結(jié)構(gòu)同 Stage 模型

三、工程模板(Templates)

1. 選擇工程類型與模板

入口路徑

歡迎頁點(diǎn)擊Create Project,或菜單File > New > Create Project

模板分類

模板名稱適用場(chǎng)景支持設(shè)備開發(fā)語言

Empty Ability基礎(chǔ) Hello World(推薦新手入門)Phone、Tablet、車機(jī)等ArkTS/JS

Native C++需調(diào)用 C++ 代碼的場(chǎng)景(如高性能計(jì)算)同上C++ + ArkTS

[CloudDev]Empty端云一體化開發(fā)(集成云端服務(wù))全設(shè)備ArkTS

[Lite]Empty Ability輕量級(jí)穿戴設(shè)備(如手環(huán)、手表)Lite WearableArkTS

Embeddable Ability開發(fā)可嵌入其他應(yīng)用的元服務(wù)(如小組件)手機(jī)、平板ArkTS

關(guān)鍵配置項(xiàng)

Bundle Name:應(yīng)用唯一標(biāo)識(shí)(格式:com.example.項(xiàng)目名,需符合三段式規(guī)則,如com.harmony.demo)。

Device Type:根據(jù)目標(biāo)設(shè)備選擇(如 Phone、Tablet、Car),可多選。

Compile SDK:編譯目標(biāo) API 版本(建議選最新穩(wěn)定版,如 API 11+)。

2. 創(chuàng)建 HarmonyOS 與 OpenHarmony 工程

HarmonyOS 工程

直接選擇模板并完成配置,默認(rèn)生成Stage 模型工程(推薦)。

OpenHarmony 工程(可選)

創(chuàng)建 HarmonyOS 工程后,修改工程級(jí)?build-profile.json5

"products": [

? {

? ? "name": "default",

? ? "compileSdkVersion": 11,? ? ? // OpenHarmony 編譯版本(整數(shù))

? ? "compatibleSdkVersion": 11,? ? // 最低兼容版本(整數(shù))

? ? "runtimeOS": "OpenHarmony"? ? ? // 運(yùn)行時(shí)系統(tǒng)改為 OpenHarmony

? }

]

同步工程,刪除不支持的設(shè)備類型(如 Phone),保留default?或tablet。

四、工程管理技巧

1. 多模塊開發(fā)(Stage 模型)

創(chuàng)建 Feature 模塊

菜單File > New > Module,選擇Feature Ability,用于擴(kuò)展功能(如插件化模塊)。

模塊間通信

通過EventBus全局狀態(tài)管理(如@AppStorage)實(shí)現(xiàn)跨模塊數(shù)據(jù)傳遞。

在app.json5?中配置模塊依賴關(guān)系。

2. 資源管理最佳實(shí)踐

結(jié)構(gòu)化資源

將顏色、字符串等放入base/element?目錄,通過$r('app.element.xxx')?引用,便于多語言 / 主題切換。

原始資源(rawfile)

直接通過路徑引用(如FileUtil.getRawFileContent('rawfile/test.txt')),適用于不參與編譯的文件。

3. 編譯與構(gòu)建配置

簽名配置

菜單File > Project Structure > Signing Configs,勾選Automatically generate signature,使用華為賬號(hào)自動(dòng)簽名(調(diào)試階段)。

構(gòu)建產(chǎn)物

HAP 包:主模塊編譯生成entry/build/outputs/hap/debug/entry.hap。

APP Pack:多模塊工程生成app/dist/xxx.app(包含所有 HAP 與pack.info)。

4. 切換開發(fā)語言

ArkTS 與 JS 混用

創(chuàng)建新模塊時(shí)選擇不同語言(如主模塊用 ArkTS,插件模塊用 JS),通過JS-TS 互調(diào)實(shí)現(xiàn)協(xié)同。

C++ 集成

使用Native C++ 模板,在 ArkTS 中通過@Native?裝飾器調(diào)用 C++ 接口。

##鴻蒙開發(fā)工具##DevEco Studio##商務(wù)#

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容