長沙Java培訓機構課件:HarmonyOS 專案結構

千鋒雲端計算發表於2021-11-30

      近期華為的鴻蒙系統(HarmonyOS)在各大平臺瘋狂刷屏,可謂是出盡了風頭,很多小夥伴都問有沒有鴻蒙相關的開發教程,那麼它來了!從今天起小編要更新一套千鋒 講師主講的有關鴻蒙系統開發的系列教程。本篇文章講解一下HarmonyOS 專案結構:

       一、使用者應用程式包結構

       HarmonyOS的使用者應用程式包以APP Pack(Application Package)形式釋出,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的組成。HAP是Ability的部署包,HarmonyOS應用程式碼圍繞Ability元件展開。 一個HAP是由程式碼、資源、第三方庫及應用配置檔案組成的模組包,可分為entry和feature兩種模組型別,如圖所示。

v2-47e0308aff266ce03cc08a1a3388afb9_720w

       entry:應用的主模組。一個APP中,對於同一裝置型別必須有且只有一個entry型別的HAP,可獨立安裝執行。

       feature:應用的動態特性模組。一個APP可以包含一個或多個feature型別的HAP,也可以不含。只有包含Ability的HAP才能夠獨立執行。

       Ability是應用所具備的能力的抽象,一個應用可以包含一個或多個Ability。Ability分為兩種型別:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應用的基本組成單元,能夠實現特定的業務功能。FA有UI介面,而PA無UI介面。

       庫檔案是應用依賴的第三方程式碼(例如so、jar、bin、har等二進位制檔案),存放在libs目錄。

       資原始檔: 應用的資原始檔(字串、圖片、音訊等)存放於resources目錄下,便於開發者使用和維護。

       配置檔案: 配置檔案 (config.json) 是應用的Ability資訊,用於宣告應用的Ability,以及應用所需許可權等資訊。

       二、程式目錄結構

v2-a9d05a59b000f759aae2ab2c2defd785_720w

       首先有一個entry目錄,結合上篇的內容,我們知道一個應用是由一個或多個Hap包所組成的,Hap包又可以分為entry型別和feature型別,每個Hap包由:程式碼、資源、第三方庫及應用配置檔案組成。所以我們程式碼中的entry目錄其實就一個應用的Hap包,它的型別的entry型別的Hap包。一個Hap包由程式碼、資源、第三方庫及應用配置檔案組成,接著我們來看這些資源,程式碼等都分佈在entry包的哪裡。

       在src/main/java下以包名命名的資料夾內分佈著Java程式碼。這裡的程式碼可以用來建立佈局,動態調整佈局以及為互動提供支撐服務。和java資料夾同級的resources目錄下分佈應用資源,該目錄的base目錄下,按資源用途又分為多個資料夾資源:

       element:表示元素資源,該資料夾下主要存放json格式的檔案,主要用來表示 字串、顏色值、布林值等,可以在其他地方被引用。

       graphic:表示可繪製資源。用xml檔案來表示,比如我們專案中設定的 圓角按鈕、按鈕顏色等都是通過引用這裡的資源來統一管理的。

       layout:表示佈局資源,用xml檔案來表示,比如頁面的佈局資源,都放在這裡。

       media:表示媒體資源,包括圖片、音訊、視訊等非文字格式的檔案。

       config.json專案配置檔案:每一個hap包下都包含了該hap包的配置資訊,這個配置檔案位於:entry/src/main/目錄下,由工具幫我們生成,命名為config.json,harmonyOS應用配置採用json格式的形式。下面我們來看一下這個配置檔案中的內容,並簡要介紹一下配置的作用。該配置檔案中,主要有三個模組,如下所示:

       app:表示應用的全域性配置資訊。同一個應用的不同HAP包的“app”配置必須保持一致。

       deviceConfig:表示應用在具體裝置上的配置資訊。

       module:表示HAP包的配置資訊。該標籤下的配置只對當前HAP包生效。

       bundleName:表示應用的包名,用於標識應用的唯一性。通常採用反轉的域名。

       vendor:表示開發應用的廠商。

       version:code表示內部版本號,用於系統管理版本使用,對使用者不可見,name表示應用的版本號,用於向使用者呈現。

       apiVersion:包含三個選項。 1、compatible:表示應用執行需要的API最小版本。 2、target:表示應用執行需要的API目標版本。 3、releaseType:表示應用執行需要的API目標版本的型別,取值為“CanaryN”、“BetaN”或者“Release”,其中,N代表大於零的整數。

       Canary:受限釋出的版本。

       Beta:公開發布的Beta版本。

       Release:公開發布的正式版本。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2844973/,如需轉載,請註明出處,否則將追究法律責任。

相關文章