鴻蒙系統系列教程6-鴻蒙系統專案結構解析
鴻蒙系統一經推出就受到了廣泛的關注,更是不少開發者都想提前學習鴻蒙軟體開發,提前佈局。所以小千為大家整理了一系列的鴻蒙開發教程,今天我們介紹鴻蒙系統的專案結構邏輯,喜歡的話記得分享收藏一下。
一、使用者應用程式包結構
HarmonyOS的使用者應用程式包以APP Pack(Application Package)形式釋出,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的組成。HAP是Ability的部署包,HarmonyOS應用程式碼圍繞Ability元件展開。
一個HAP是由程式碼、資源、第三方庫及應用配置檔案組成的模組包,可分為entry和feature兩種模組型別,如圖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,以及應用所需許可權等資訊。
二、程式目錄結構
首先有一個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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 鴻蒙系統系列教程1-鴻蒙系統的發展史鴻蒙
- 鴻蒙系統系列教程2-鴻蒙OS系統分散式操作講解鴻蒙分散式
- 鴻蒙系統系列教程5-鴻蒙開發環境的搭建鴻蒙開發環境
- 鴻蒙系統系列教程3-鴻蒙OS的技術特徵講解鴻蒙特徵
- 鴻蒙系統嚐鮮鴻蒙
- 鴻蒙系統超級終端怎麼使用?鴻蒙系統超級終端開啟教程鴻蒙
- 鴻蒙系統什麼時候能用 鴻蒙系統有什麼特別之處鴻蒙
- 鴻蒙系統和安卓的區別 鴻蒙系統是基於安卓嗎鴻蒙安卓
- 鴻蒙作業系統特點鴻蒙作業系統
- 鴻蒙系統中Intent的使用鴻蒙Intent
- 鴻蒙系統freeModbusTcp移植簡介鴻蒙TCP
- 鴻蒙系統學習路線和專案實戰分享!鴻蒙
- 逐行分析鴻蒙系統的 JavaScript 框架鴻蒙JavaScript框架
- 華為鴻蒙系統HarmonyOS學習之十:鴻蒙HarmonyOS微核心技術鴻蒙
- 鴻蒙OS的系統呼叫是如何實現的? | 解讀鴻蒙原始碼鴻蒙原始碼
- 鴻蒙輕核心原始碼分析:檔案系統LittleFS鴻蒙原始碼
- 華為鴻蒙系統怎麼補電?華為鴻蒙系統手機補電的操作方法鴻蒙
- 成為自己(二):鴻蒙 Harmony 系統篇鴻蒙
- 鴻蒙系統應用基礎開發鴻蒙
- 鴻蒙系統中的 JS 開發框架鴻蒙JS框架
- OS-鴻蒙系統-以及編譯器鴻蒙編譯
- 鴻蒙系統超級終端是幹什麼用的?鴻蒙系統超級終端的作用詳解鴻蒙
- 鴻蒙系統(HarmonyOS)全域性彈窗實現鴻蒙
- 華為鴻蒙進一步開啟海外市場!歐洲官宣“鴻蒙”新系統!鴻蒙
- 鴻蒙開發實戰:【系統服務框架部件】鴻蒙框架
- 實測!華為鴻蒙比 Android系統快60%!鴻蒙Android
- 聊聊鴻蒙系統與開發者生態前景鴻蒙
- 3.5鴻蒙鴻蒙
- 鴻蒙layoutWeight鴻蒙
- 鴻蒙系統(OpenHarmony HarmonyOS):面向全場景的分散式作業系統鴻蒙分散式作業系統
- 一文讀懂鴻蒙系統與安卓系統的區別鴻蒙安卓
- 震驚!浙江某男子發現鴻蒙系統若干秘密鴻蒙
- 鴻蒙系統應用開發之入門解說鴻蒙
- 鴻蒙系統應用開發之開發準備鴻蒙
- 鴻仁科研專案管理系統專案管理
- 為什麼谷歌不起訴華為的鴻蒙系統?谷歌鴻蒙
- 鴻蒙Next安全訪問新正規化:系統Picker與安全控制元件解析鴻蒙控制元件
- 鴻蒙生態鴻蒙