官术网_书友最值得收藏!

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文件,用于處理頁面和用戶的交互。

主站蜘蛛池模板: 云龙县| 普陀区| 阳西县| 黑山县| 诸暨市| 鄂托克前旗| 遂昌县| 桐城市| 吴桥县| 甘泉县| 洪洞县| 富川| 修文县| 理塘县| 莱芜市| 孝义市| 嘉祥县| 上高县| 白沙| 蒙阴县| 措勤县| 沙田区| 广水市| 石家庄市| 文山县| 桐城市| 都兰县| 白山市| 大渡口区| 辽源市| 潜江市| 乐昌市| 高阳县| 石台县| 浪卡子县| 嘉黎县| 大英县| 温泉县| 屏边| 栾城县| 海淀区|