千鋒長沙Java培訓(xùn):HarmonyOS 項(xiàng)目結(jié)構(gòu)
近期華為的鴻蒙系統(tǒng)(HarmonyOS)在各大平臺(tái)瘋狂刷屏,可謂是出盡了風(fēng)頭,很多小伙伴都問有沒有鴻蒙相關(guān)的開發(fā)教程,那么它來了!從今天起小編要更新一套千鋒長沙Java培訓(xùn)講師主講的有關(guān)鴻蒙系統(tǒng)開發(fā)的系列教程。本篇文章講解一下HarmonyOS 項(xiàng)目結(jié)構(gòu):
一、用戶應(yīng)用程序包結(jié)構(gòu)
HarmonyOS的用戶應(yīng)用程序包以APP Pack(Application Package)形式發(fā)布,它是由一個(gè)或多個(gè)HAP(HarmonyOS Ability Package)以及描述每個(gè)HAP屬性的http://pack.info組成。HAP是Ability的部署包,HarmonyOS應(yīng)用代碼圍繞Ability組件展開。一個(gè)HAP是由代碼、資源、第三方庫及應(yīng)用配置文件組成的模塊包,可分為entry和feature兩種模塊類型,如圖所示。
entry:應(yīng)用的主模塊。一個(gè)APP中,對于同一設(shè)備類型必須有且只有一個(gè)entry類型的HAP,可獨(dú)立安裝運(yùn)行。
feature:應(yīng)用的動(dòng)態(tài)特性模塊。一個(gè)APP可以包含一個(gè)或多個(gè)feature類型的HAP,也可以不含。只有包含Ability的HAP才能夠獨(dú)立運(yùn)行。
Ability是應(yīng)用所具備的能力的抽象,一個(gè)應(yīng)用可以包含一個(gè)或多個(gè)Ability。Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應(yīng)用的基本組成單元,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能。FA有UI界面,而PA無UI界面。
庫文件是應(yīng)用依賴的第三方代碼(例如so、jar、bin、har等二進(jìn)制文件),存放在libs目錄。
資源文件:應(yīng)用的資源文件(字符串、圖片、音頻等)存放于resources目錄下,便于開發(fā)者使用和維護(hù)。
配置文件:配置文件 (config.json) 是應(yīng)用的Ability信息,用于聲明應(yīng)用的Ability,以及應(yīng)用所需權(quán)限等信息。
二、程序目錄結(jié)構(gòu)
首先有一個(gè)entry目錄,結(jié)合上篇的內(nèi)容,我們知道一個(gè)應(yīng)用是由一個(gè)或多個(gè)Hap包所組成的,Hap包又可以分為entry類型和feature類型,每個(gè)Hap包由:代碼、資源、第三方庫及應(yīng)用配置文件組成。所以我們代碼中的entry目錄其實(shí)就一個(gè)應(yīng)用的Hap包,它的類型的entry類型的Hap包。一個(gè)Hap包由代碼、資源、第三方庫及應(yīng)用配置文件組成,接著我們來看這些資源,代碼等都分布在entry包的哪里。
在src/main/java下以包名命名的文件夾內(nèi)分布著Java代碼。這里的代碼可以用來創(chuàng)建布局,動(dòng)態(tài)調(diào)整布局以及為交互提供支撐服務(wù)。和java文件夾同級(jí)的resources目錄下分布應(yīng)用資源,該目錄的base目錄下,按資源用途又分為多個(gè)文件夾資源:
element:表示元素資源,該文件夾下主要存放json格式的文件,主要用來表示 字符串、顏色值、布爾值等,可以在其他地方被引用。
graphic:表示可繪制資源。用xml文件來表示,比如我們項(xiàng)目中設(shè)置的 圓角按鈕、按鈕顏色等都是通過引用這里的資源來統(tǒng)一管理的。
layout:表示布局資源,用xml文件來表示,比如頁面的布局資源,都放在這里。
media:表示媒體資源,包括圖片、音頻、視頻等非文本格式的文件。
config.json項(xiàng)目配置文件:每一個(gè)hap包下都包含了該hap包的配置信息,這個(gè)配置文件位于:entry/src/main/目錄下,由工具幫我們生成,命名為config.json,harmonyOS應(yīng)用配置采用json格式的形式。下面我們來看一下這個(gè)配置文件中的內(nèi)容,并簡要介紹一下配置的作用。該配置文件中,主要有三個(gè)模塊,如下所示:
app:表示應(yīng)用的全局配置信息。同一個(gè)應(yīng)用的不同HAP包的“app”配置必須保持一致。
deviceConfig:表示應(yīng)用在具體設(shè)備上的配置信息。
module:表示HAP包的配置信息。該標(biāo)簽下的配置只對當(dāng)前HAP包生效。
bundleName:表示應(yīng)用的包名,用于標(biāo)識(shí)應(yīng)用的唯一性。通常采用反轉(zhuǎn)的域名。
vendor:表示開發(fā)應(yīng)用的廠商。
version:code表示內(nèi)部版本號(hào),用于系統(tǒng)管理版本使用,對用戶不可見,name表示應(yīng)用的版本號(hào),用于向用戶呈現(xiàn)。
apiVersion:包含三個(gè)選項(xiàng)。1、compatible:表示應(yīng)用運(yùn)行需要的API最小版本。2、target:表示應(yīng)用運(yùn)行需要的API目標(biāo)版本。3、releaseType:表示應(yīng)用運(yùn)行需要的API目標(biāo)版本的類型,取值為“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整數(shù)。
Canary:受限發(fā)布的版本。
Beta:公開發(fā)布的Beta版本。
Release:公開發(fā)布的正式版本。

猜你喜歡LIKE
最新文章NEW
相關(guān)推薦HOT
更多>>熱門推薦
零基礎(chǔ)必看的前端HTML+CSS教程
沸Java培訓(xùn)新手實(shí)戰(zhàn)必備!單機(jī)版坦克大戰(zhàn)分步實(shí)現(xiàn)項(xiàng)目源碼
熱3種Javascript圖片預(yù)加載的方法詳解
熱長沙前端培訓(xùn):一招教你用vue3+canvas實(shí)現(xiàn)坦克大戰(zhàn)
新互聯(lián)網(wǎng)涼了?參加長沙Java培訓(xùn)能找到工作嗎?
長沙Java培訓(xùn)實(shí)戰(zhàn)項(xiàng)目,出游咨詢訂票系統(tǒng)開發(fā)流程
不參加長沙Java培訓(xùn)能學(xué)會(huì)Java嗎?2022Java技能學(xué)習(xí)路線圖
千鋒長沙Java培訓(xùn)分享之怎么學(xué)習(xí)Java集合?
千鋒長沙前端培訓(xùn)分享之JavaScript面向?qū)ο缶幊趟枷朐斀?/p>
千鋒長沙前端培訓(xùn)分享之web前端的回流和重繪
千鋒長沙前端培訓(xùn)分享之3種Javascript圖片預(yù)加載的方法詳解
千鋒長沙前端培訓(xùn)分享之利用Jest測試React組件
千鋒長沙前端培訓(xùn)分享之JavaScript中Slice的用例
千鋒長沙java培訓(xùn)分享之Socket編程
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價(jià)格 -
優(yōu)惠活動(dòng)
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊(duì)
了解師資團(tuán)隊(duì) -
實(shí)戰(zhàn)項(xiàng)目
獲取項(xiàng)目源碼 -
開班地區(qū)
查看來校路線