- 鴻蒙操作系統(tǒng)應(yīng)用開發(fā)實踐
- 陳美汝 鄭森文等
- 1472字
- 2022-07-28 19:33:57
1.5 HarmonyOS項目分析
1.5.1 項目邏輯視圖
首先整體了解一下一個HarmonyOS應(yīng)用軟件的整體項目邏輯視圖及模塊組成,如圖1.38所示。

圖1.38 項目邏輯視圖
HarmonyOS的應(yīng)用軟件,以App(App Pack)的形式發(fā)布,每個App由一個或多個HAP(HarmonyOS Ability Package)及pack.info組成。其中,pack.info用于描述每個HAP的屬性,主要包括該HAP是否隨應(yīng)用安裝(delivery-with-install)、HAP文件名(name)、HAP模塊包類型(module-type)、支持該HAP運行的設(shè)備類型(device-type)等。
其中,每個HAP模塊包由Ability(Ability是應(yīng)用具備的能力,HarmonyOS應(yīng)用代碼圍繞Ability組件展開,第3章會詳細(xì)講解)、第三方庫(libs)、資源文件(Resources)及應(yīng)用配置文件(config.json)組成。HAP模塊包分為entry和feature兩種類型。
(1)entry:應(yīng)用的主模塊。在一個App中,同一設(shè)備類型必須有且僅能有一個entry類型的HAP包,可獨立安裝運行。
(2)feature:應(yīng)用的動態(tài)類型模塊。在一個App中,可以包含一個或多個feature類型的HAP包,也可以不包含,但只有包含Ability的HAP包才能獨立運行。
1.5.2 項目結(jié)構(gòu)與文件
現(xiàn)在來看一下之前創(chuàng)建的Hello World項目,項目結(jié)構(gòu)如圖1.39所示。這里逐一介紹每個文件的內(nèi)容。

圖1.39 項目結(jié)構(gòu)
1).gradle和idea
這兩個文件是由DevEco Studio自動生成的配置文件,一般情況下不需要進(jìn)行修改。
2)build
build文件夾中包含了一些在編譯時自動生成的文件,一般也不需要進(jìn)行修改。
3)entry
entry是默認(rèn)啟動模塊,是項目中的主模塊,隨后開發(fā)中的源碼文件和資源文件均在entry中。
4)gradle
目錄下包含了gradle wrapper的配置文件。
5).gitignore
該文件用來將指定的目錄或文件排除在版本控制之外。
6)build.gradle
項目全局的gradle構(gòu)建腳本。
7)gradle.properties
項目全局的gradle配置文件,其中配置的屬性會影響項目中所有的gradle編譯腳本。
8)gradlew和gradlew.bat
這兩個文件用來在命令行界面中執(zhí)行g(shù)radle命令,其中,gradlew用于Linux或Mac系統(tǒng),gradlew.bat用于Windows系統(tǒng)。
9)local.properties
文件用于指定本機中的SDK路徑,通常自動生成而無須修改。若更改了本機中的SDK路徑,則應(yīng)對該文件中的路徑進(jìn)行修改。
10)MyApplication.iml
.iml文件是由DevEco Studio自動生成的文件,用來標(biāo)識這是一個DevEco Studio項目,無須進(jìn)行修改。
11)settings.gradle
該文件用來表示項目中所有引入的模塊。通常在項目中新建一個模塊之后,settings.gradle會自動引入該模塊。
以上是整個項目的外層目錄結(jié)構(gòu),其中絕大多數(shù)為自動生成的文件。entry目錄為整個項目的重點,在這里進(jìn)行主要的應(yīng)用開發(fā)。下面展開entry進(jìn)行進(jìn)一步分析。
這里先介紹Java工程下的entry目錄結(jié)構(gòu),如圖1.40所示。

圖1.40 Java工程下的entry目錄結(jié)構(gòu)
1)build
與外層的build文件相似,包含一些在編譯時自動生成的文件,一般不需要修改。
2)libs
存放entry模塊下的第三方依賴文件。
3)src→main→java
開發(fā)者用于編寫Java源碼文件的存放目錄。
4)src→main→resources
開發(fā)者用于存放開發(fā)資源文件的目錄,包括圖片、音視頻等資源文件。
5)src→main→config.json
應(yīng)用配置文件。用于聲明應(yīng)用的Ability信息,以及應(yīng)用所需的權(quán)限等信息。
6)src→test
開發(fā)者用于編寫測試文件的目錄。
7).gitignore
用于將entry模塊內(nèi)的指定目錄或文件排除在版本控制之外,其作用和外層的.gitignore文件基本一致。
8)build.gradle
entry模塊的gradle構(gòu)建腳本,指定與項目構(gòu)建相關(guān)的配置信息。
9)entry.iml
DevEco Studio自動生成的文件,無須進(jìn)行修改。
這是Java項目的目錄結(jié)構(gòu),這里也可以創(chuàng)建JS項目,以此來學(xué)習(xí)JS項目的目錄結(jié)構(gòu)。如選擇TV設(shè)備下的Empty Feature Ability(JS),創(chuàng)建完成后,在項目的目錄結(jié)構(gòu)中,除了包括Java項目文件外,還多了JS文件夾及相應(yīng)文件,如圖1.41所示。

圖1.41 JS項目目錄結(jié)構(gòu)
1)js→default→i18n
i18n是英文單詞internationalization的縮寫,是“國際化”的簡稱。i18n文件夾用于存放配置不同語言場景的資源,例如應(yīng)用文本詞條、圖片路徑等資源。
2)js→default→pages
pages文件夾用于存放多個頁面的開發(fā)文件,例如圖中一個index表示一個頁面,每個頁面由HML、CSS和JS文件組成。
(1)index.hml: HML模板文件,用來描述當(dāng)前頁面的布局結(jié)構(gòu),類似于網(wǎng)頁中的HTML文件。
(2)index.css: CSS樣式文件,用于描述頁面樣式。
(3)index.js: JS文件,用于處理頁面和用戶的交互。
- 全屋互聯(lián):智能家居系統(tǒng)開發(fā)指南
- Kali Linux滲透測試全流程詳解
- Instant Handlebars.js
- vSphere Virtual Machine Management
- 嵌入式Linux驅(qū)動程序和系統(tǒng)開發(fā)實例精講
- 混沌工程實戰(zhàn):手把手教你實現(xiàn)系統(tǒng)穩(wěn)定性
- Java EE 8 Design Patterns and Best Practices
- 巧學(xué)活用Windows 7
- Microsoft Operations Management Suite Cookbook
- AutoCAD 2014中文版從入門到精通
- Windows 7應(yīng)用入門與技巧
- Advanced TypeScript Programming Projects
- iOS 10 開發(fā)指南
- Docker容器技術(shù)與應(yīng)用
- Agile IT Security Implementation Methodology