鴻蒙系統系列教程6-鴻蒙系統專案結構解析

千鋒武漢發表於2021-07-14

      鴻蒙系統一經推出就受到了廣泛的關注,更是不少開發者都想提前學習鴻蒙軟體開發,提前佈局。所以小千為大家整理了一系列的鴻蒙開發教程,今天我們介紹鴻蒙系統的專案結構邏輯,喜歡的話記得分享收藏一下。

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

      HarmonyOS的使用者應用程式包以APP Pack(Application Package)形式釋出,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的組成。HAP是Ability的部署包,HarmonyOS應用程式碼圍繞Ability元件展開。

      一個HAP是由程式碼、資源、第三方庫及應用配置檔案組成的模組包,可分為entry和feature兩種模組型別,如圖1所示。

千鋒IT鴻蒙教程1

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

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

      Ability: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,以及應用所需許可權等資訊。

      二、程式目錄結構

千鋒IT鴻蒙教程2

      首先有一個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/31548651/viewspace-2781216/,如需轉載,請註明出處,否則將追究法律責任。

相關文章