- HarmonyOS應用開發:快速入門與項目實戰
- 夏德旺 謝立主編 樊樂 趙小剛副主編
- 2184字
- 2021-11-25 16:25:13
2.2.4 工程管理
1.工程結構介紹
(1)HarmonyOS App工程結構
在進行HarmonyOS應用開發前,你應該掌握HarmonyOS應用的邏輯結構(見圖2-42)。

圖2-42 HarmonyOS App工程結構
HarmonyOS應用以App Pack的形式發布,它是由一個或多個HAP以及描述App Pack屬性的pack.info文件組成。
一個HAP在工程目錄中對應一個Module,它由代碼、資源、第三方庫及應用配置文件組成,可以分為Entry和Feature兩種類型。
HAP是Ability的部署包。HarmonyOS應用代碼圍繞Ability組件展開,它是由一個或多個Ability組成。Ability分為兩種類型:FA(元程序)和PA(元服務)。
(2)工程目錄結構
Java工程目錄結構如圖2-43所示。

圖2-43 Java工程目錄結構
以下是該目錄結構中部分目錄和文件的說明:
□.gradle:Gradle配置文件,由系統自動生成,一般情況下不需要進行修改。
□entry:默認啟動模塊(主模塊),開發者用于編寫源碼文件以及開發資源文件的目錄。
□entry>libs:用于存放entry模塊的依賴文件。
□entry>src>main>Java:用于存放Java源碼。
□entry>src>main>resources:用于存放應用所用到的資源文件,如圖形、多媒體、字符串、布局文件等(見圖2-44)。關于資源文件的詳細說明,請參考資源文件的分類(見2.2.3節)。

圖2-44 資源文件說明
□entry>src>main>config.json:HAP清單文件,詳細說明請參考config.json配置文件的介紹。
□entry>src>test:編寫代碼單元測試代碼的目錄,運行在本地Java虛擬機(JVM)上。
□entry>.gitignore:標識Git版本管理需要忽略的文件。
□entry>build.gradle:entry模塊的編譯配置文件。
JS工程目錄結構如圖2-45所示。

圖2-45 JS工程目錄結構
以下是該目錄結構中部分目錄和文件的說明:
□common:可選,用于存放公共資源文件,如媒體資源、自定義組件和JS文檔等。
□i18n:可選,用于存放多語言的json文件,可以在該目錄下定義應用在不同語言系統下顯示的內容,如應用文本詞條、圖片路徑等。
□pages:pages文件夾下可以包含1個或多個頁面,每個頁面都需要創建一個文件夾(如圖2-45中的index)。頁面文件夾下主要包含3種文件類型,即css、js和hml文件。
□pages>index>index.hml文件:hml文件定義了頁面的布局結構、使用到的組件,以及這些組件的層級關系。
□pages>index>index.css文件:css文件定義了頁面的樣式與布局,包含樣式選擇器和各種樣式屬性等。
□pages>index>index.js文件:js文件描述了頁面的行為邏輯,此文件里定義了頁面里所用到的所有邏輯關系,比如數據、事件等。
□resources:可選,用于存放資源配置文件,比如全局樣式、多分辨率加載等配置文件。
□app.js:全局的JavaScript邏輯文件和應用的生命周期管理。
2.適配歷史工程
由于最新版本的HarmonyOS SDK對應的API版本發生了躍遷,原有的API Version 3變成了API Version 4,原有的API Version 4變成了當前的API Version 5。因此,使用最新版本的DevEco Studio打開歷史工程,需要對歷史工程進行適配;如果歷史工程未做適配,則會導致工程出現運行錯誤。
在打開歷史工程前,建議先點擊Help>Check for Updates,檢查并升級DevEco Studio至最新版本;點擊Tools>SDK Manager,檢查并升級SDK及工具鏈版本至最新版本。
使用DevEco Studio打開歷史工程,會提示將歷史工程進行升級適配。點擊Update,工具會自動修改工程中的配置信息,包括:
□升級config.json和build.gradle中的API Version。
□升級編譯構建插件版本為2.4.2.4。
□升級config.json中的releaseType字段的值為Beta1。
□在build.gradle中添加OHOS測試框架的依賴。
工程升級前后的config.json關鍵字段對比如圖2-46所示。

圖2-46 工程升級前后的config.json關鍵字段對比
3.在工程中管理模塊
模塊(Module)是HarmonyOS應用的基本功能單元,包含了源代碼、資源文件、第三方庫及應用配置文件,每一個模塊都可以獨立編譯和運行。一個HarmonyOS應用通常會包含一個或多個模塊,因此,可以在工程中創建多個模塊,每個模塊分為Ability和Library(HarmonyOS Library和Java Library)兩種類型。
從前面關于HarmonyOS工程的介紹可知,在一個App中,對于同一類型設備有且只有一個Entry模塊,其余模塊的類型均為Feature。因此,在創建一個類型為Ability的模塊時,遵循如下原則:
□若新增模塊的設備類型為“已有設備”,則模塊的類型將自動設置為Feature。
□若新增模塊的設備類型為“當前還沒有創建模塊”,則模塊的類型將自動設置為Entry。
(1)新增模塊
通過如下兩種方法,在工程中添加新的模塊。
方法1:鼠標移到工程目錄頂部,點擊鼠標右鍵,選擇New>Module,開始創建新的模塊。
方法2:在菜單欄選擇File>New>Module,開始創建新的模塊。
在New Project Module界面中,選擇模塊對應的設備類型和模板(見圖2-47)。

圖2-47 在工程中添加新的模塊(1)
點擊Next,在模塊配置頁面設置新增模塊的基本信息(見圖2-48)。
模塊類型為Ability或者HarmonyOS Library時,請根據如下內容進行設置,然后點擊Next(見圖2-48)。
□Application/Library name:新增模塊所屬的類名稱。
□Module Name:新增模塊的名稱。
□Module Type:僅模塊類型為Ability時存在,工具自動根據設備類型下的模塊進行設置,設置規則請參考Ability的模塊類型設置原則。
□Package Name:軟件包名稱,可以點擊Edit修改默認包名稱,須全局唯一。
□Compatible SDK:兼容的SDK版本。

圖2-48 在工程中添加新的模塊(2)
模塊類型為Java Library時,請根據如下內容進行設置,然后點擊Finish完成創建(見圖2-49)。

圖2-49 在工程中添加新的模塊(3)
□Library name:Java Library類名稱。
□Java package name:軟件包名稱,可以點擊Edit修改默認包名稱,須全局唯一。
□Java class name:Java類文件名稱。
□Create .gitignore file:是否自動創建.gitignore文件,勾選表示創建。
設置新增Ability的Page Name。若該模塊的類型為Ability,則還需要設置Visible參數,表示該Ability是否可以被其他應用所調用。
□勾選(true):可以被其他應用調用。
□不勾選(false):不能被其他應用調用。
點擊Finish,等待創建完成后,可以在工程目錄中查看和編輯新增的模塊。
(2)刪除模塊
為防止開發者在刪除模塊的過程中,誤將其他模塊刪除,DevEco Studio提供統一的模塊管理功能,需要先在模塊管理中移除對應的模塊后,才允許刪除。
在菜單欄中選擇File>Project Structure>Modules,選擇需要刪除的模塊,點擊減號按鈕,然后在彈出的對話框中點擊Yes,如圖2-50所示。

圖2-50 刪除模塊
然后,在工程目錄中選中該模塊,點擊鼠標右鍵,選中Delete,并在彈出的對話框中點擊Delete。
- Linux網絡管理與配置(第2版)
- FreeRTOS實時內核應用指南
- Kubernetes網絡權威指南:基礎、原理與實踐
- RESS Essentials
- Linux使用和管理指南:從云原生到可觀測性
- Linux內核觀測技術BPF
- 嵌入式系統及其應用(第三版)
- 注冊表應用完全DIY
- Windows Server 2012網絡操作系統項目教程(第4版)
- Learn SwiftUI
- Android應用性能優化最佳實踐
- Linux內核分析及應用
- Android NDK Beginner's Guide
- 計算機應用基礎(Windows 7+Office 2010)
- Hadoop Operations and Cluster Management Cookbook