0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙應(yīng)用中的幾種常見(jiàn)類型的文件

華為麒麟 ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:starLWW ? 2021-08-20 10:06 ? 次閱讀

應(yīng)用中的幾種常見(jiàn)類型的文件

①Ability

Ability 是應(yīng)用所具備的能力的抽象,一個(gè)應(yīng)用可以包含一個(gè)或多個(gè) Ability。

Ability 分為兩種類型:FA(Feature Ability,中文名稱:元程序)和 PA(Particle Ability,中文名稱:元服務(wù))。

FA/PA 是應(yīng)用的基本組成單元,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能。FA 有 UI 界面,而 PA 無(wú) UI 界面。

②庫(kù)文件

庫(kù)文件是應(yīng)用依賴的第三方代碼(例如 so、jar、bin、har 等二進(jìn)制文件),存放在 libs 目錄。

③資源文件

應(yīng)用的資源文件(字符串、圖片、音頻等)存放于 resources 目錄下,便于開(kāi)發(fā)者使用和維護(hù),詳見(jiàn)資源文件的分類。

④配置文件

配置文件(config.json)是應(yīng)用的 Ability 信息,用于聲明應(yīng)用的 Ability,以及應(yīng)用所需權(quán)限等信息,詳見(jiàn)應(yīng)用配置文件。

⑤pack.info

描述應(yīng)用軟件包中每個(gè) HAP 的屬性,由 IDE 編譯生成,應(yīng)用市場(chǎng)根據(jù)該文件進(jìn)行拆包和 HAP 的分類存儲(chǔ)。

HAP 的具體屬性包括:

delivery-with-install:表示該 HAP 是否支持隨應(yīng)用安裝。

“true”表示支持隨應(yīng)用安裝;

“false”表示不支持隨應(yīng)用安裝。

name:HAP 文件名。

module-type:模塊類型,entry 或 feature。

device-type:表示支持該 HAP 運(yùn)行的設(shè)備類型。

⑥HAR

HAR(HarmonyOS Ability Resources)可以提供構(gòu)建應(yīng)用所需的所有內(nèi)容,包括源代碼、資源文件和 config.json 文件。

HAR 不同于 HAP,HAR 不能獨(dú)立安裝運(yùn)行在設(shè)備上,只能作為應(yīng)用模塊的依賴項(xiàng)被引用。

HarmonyOS 應(yīng)用的目錄結(jié)構(gòu)

HarmonyOS 應(yīng)用發(fā)布形態(tài)為 APP Pack(Application Package,簡(jiǎn)稱 APP),它是由一個(gè)或多個(gè) HAP(HarmonyOS Ability Package)包以及描述每個(gè) HAP(Ability 的部署包)屬性的 pack.info 文件組成。

Hap 包又可以分為 entry 類型和 feature 類型,每個(gè) Hap 包由:代碼、資源、第三方庫(kù)及應(yīng)用配置文件組成。

所以我們代碼中的 entry 目錄其實(shí)就是一個(gè)應(yīng)用的 Hap 包,它是 entry 類型的 Hap 包。接下來(lái)我們來(lái)了解下這些資源。

entry:應(yīng)用的主模塊。一個(gè) APP 中,對(duì)于同一設(shè)備類型必須有且只有一個(gè) entry 類型的 HAP,可獨(dú)立安裝運(yùn)行。

feature:應(yīng)用的動(dòng)態(tài)特性模塊。一個(gè) APP 可以包含 0 個(gè)、一個(gè)或多個(gè) feature 類型的 HAP。只有包含 Ability 的 HAP 才能夠獨(dú)立運(yùn)行。

HAP 是 Ability 的部署包,HarmonyOS 應(yīng)用代碼圍繞 Ability 組件展開(kāi),它是由一個(gè)或多個(gè) Ability 組成。

setting.gradle 文件用于指定應(yīng)用包含哪些 entry 或 feature 模塊。

build.gradle 文件是應(yīng)用的環(huán)境配置文件,如指定編譯應(yīng)用程序使用的 sdk 版本,依賴外部 maven 庫(kù)等。

gradle 目錄是 gradle 的配置文件,由系統(tǒng)自動(dòng)生成,一般情況下不需要進(jìn)行修改。

其中g(shù)radle》wrapper》gradle-wrapper.properties 文件一般用于指定應(yīng)用使用的 gradle 版本。

build 目錄是在編譯構(gòu)建過(guò)程中生成的,該目錄中主要包含該 entry 編譯生成的 hap 包及其對(duì)應(yīng)的描述文件 pack.info,以及用于索引所有資源文件的 ResourceTable 文件。

特別注意的是:所有資源如包括控件名稱、字符串常量、動(dòng)畫資源、長(zhǎng)度資源、布局資源、圖片、音視頻資源等都將在 ResourceTable 文件中生成唯一的靜態(tài)整型索引常量。

通過(guò)這個(gè)索引可以訪問(wèn)到具體的資源,如 Java 代碼中得到名稱為 ability_main.xml 布局文件的方法:ResourceTable.Layout_ability_main。

entry 是該應(yīng)用的主模塊,其目錄下包含 build、libs、src 目錄和一個(gè)主要的 build.gradle 文件。

entry 中各目錄及文件含義如下:

①entry》libs 目錄下用于存放第三方的 jar 包,是該 entry 模塊對(duì)第三方類庫(kù)的存放目錄。

②entry》src 目錄是該 entry 模塊的所有源程序目錄,我們重點(diǎn)關(guān)注該目錄中的 main 目錄和 config.json 文件。

main 目錄下包含 java 和 resources 目錄。

entry》src》main》java 包括應(yīng)用中所有的 java 文件,以包的形式進(jìn)行組織。

一個(gè)可視化的 Ability(FA)的呈現(xiàn)包含的 3 個(gè)文件,其中的 Slice 和 Ability 都在 main 目錄下。

該目錄下還可以添加其他業(yè)務(wù)邏輯處理的 java 類文件,如實(shí)現(xiàn)網(wǎng)絡(luò)操作、數(shù)據(jù)庫(kù)操作等業(yè)務(wù)類,用戶自定義的工具類等。需要注意的是,實(shí)現(xiàn)一個(gè)可視化的 Ability,Slice 并不是必須的。

entry》src》main》resources 目錄是所有資源文件所在的目錄。

resources 目錄包括兩大類目錄:

一類是 base 目錄與限定詞目錄,目錄中的資源文件會(huì)被編譯成二進(jìn)制文件,并賦予資源文件 ID(能被 ResourceTable 索引,通過(guò)指定資源類型(type)和資源名稱(name)來(lái)引用)。

另一類是 rawfile 目錄,目錄中的資源文件會(huì)被直接打包進(jìn)應(yīng)用,不經(jīng)過(guò)編譯,也不會(huì)被賦予資源文件 ID(不能被 ResourceTable 索引,通過(guò)指定文件路徑和文件名來(lái)引用)。

resources》base》element:表示字符串、整型數(shù)、顏色、樣式等常量資源,采用相應(yīng)的JSON文件來(lái)表示,可以在其他地方被引用。

默認(rèn)只包含一個(gè)string.json文件,程序員可根據(jù)自己的需要添加其他類型的文件,如圖 6 所示:

110e1b92-00ef-11ec-9bcf-12bb97331649.jpg

圖 6

但文件名稱建議和如下文件名稱一致:

strings.json:字符串值資源(默認(rèn)包含)

boolean.json:布爾型資源

color.json:顏色資源

float.json:浮點(diǎn)型資源

intarray.json:整型數(shù)組資源

integer.json:整型資源

pattern.json:樣式資源

plural.json:復(fù)數(shù)形式資源

strarray.json:字符串?dāng)?shù)組資源

resources》base》graphic:表示可繪制資源,如 SVG(Scalable Vector Graphics)可縮放矢量圖形文件、Shape 基本的幾何圖形(如矩形、圓形、線等)等。

用 xml 文件來(lái)表示,比如我們項(xiàng)目中設(shè)置的圓角按鈕、按鈕顏色等都是通過(guò)引用這里的資源來(lái)統(tǒng)一管理的:

base》graphic:xml 類型的可繪制資源。

resources》base》layout:表示布局資源,用 xml 文件來(lái)表示。

resources》base》media:表示媒體資源,包括圖片、音頻、視頻等非文本格式的文件,支持的文件格式包括:.png、.gif、.mp3、.mp4 等。

resources》限定詞目錄:en_…,如 en_element、zh_element、en_GB-vertical-car-mdpi 等。限定詞目錄需要開(kāi)發(fā)者自行創(chuàng)建。

目錄名稱由一個(gè)或多個(gè)表征應(yīng)用場(chǎng)景或設(shè)備特征的限定詞組合而成,可以包含移動(dòng)國(guó)家碼和移動(dòng)網(wǎng)絡(luò)碼、語(yǔ)言、文字、橫豎屏、設(shè)備類型、顏色模式等限定詞。

對(duì)應(yīng)限定詞的取值必須與當(dāng)前的設(shè)備狀態(tài)完全一致,該目錄才能夠參與設(shè)備的資源匹配。

例如,限定詞目錄“zh_CN-car-ldpi”不能參與“en_US”設(shè)備的資源匹配。

resources》rawfile/profile 目錄:用于存儲(chǔ)任意格式的原始資源文件。允許程序員創(chuàng)建多層子目錄,目錄名稱可以自定義,目錄下也可以自由放置各類資源文件。該目錄的文件不會(huì)根據(jù)設(shè)備狀態(tài)去匹配不同的資源。

entry》src》main》config.json 文件是 entry(或 feature)的配置文件,由“app”、“deviceConfig”和“module”三個(gè)部分組成,缺一不可。

其中“app” 表示應(yīng)用的全局配置信息,同一個(gè)應(yīng)用的不同 HAP 包的“app”配置必須保持一致;“deviceConfig”表示應(yīng)用在具體設(shè)備上的配置信息;“module”表示 HAP 包的配置信息。該標(biāo)簽下的配置只對(duì)當(dāng)前 HAP 包生效。

③entry》build.gradle:entry 模塊的編譯配置文件,包括 entry 使用的 SDK 版本、所依賴的資源(如 maven 庫(kù)、Jar 類庫(kù)等)。

④entry》src》test:編寫代碼單元測(cè)試代碼的目錄,運(yùn)行在本地 Java 虛擬機(jī)(JVM)上。

⑤entry》.gitignore:標(biāo)識(shí) git 版本管理需要忽略的文件。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 華為
    +關(guān)注

    關(guān)注

    215

    文章

    34126

    瀏覽量

    249439
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2627

    瀏覽量

    65779
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1946

    瀏覽量

    29732

原文標(biāo)題:一文搞懂鴻蒙OS應(yīng)用的目錄結(jié)構(gòu)

文章出處:【微信號(hào):Huawei_Kirin,微信公眾號(hào):華為麒麟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    幾種常用的共模電感磁芯類型

    電子發(fā)燒友網(wǎng)站提供《幾種常用的共模電感磁芯類型.docx》資料免費(fèi)下載
    發(fā)表于 09-20 11:27 ?0次下載

    試驗(yàn)變壓器常見(jiàn)幾種類型

    試驗(yàn)變壓器是我們電力系統(tǒng)很重要的一種做耐壓試驗(yàn)儀器,那么我們常見(jiàn)的試驗(yàn)變壓器按絕緣材質(zhì)分為哪幾種類型呢?以下是由鴻蒙電力給大家列舉陳述。   1、按絕緣結(jié)構(gòu)形式分為:干式、半干式、油
    發(fā)表于 09-11 15:00

    一文讀懂常見(jiàn)存儲(chǔ)器類型

    存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)和讀取數(shù)據(jù)的硬件組件,根據(jù)存儲(chǔ)介質(zhì)和工作原理的不同,存儲(chǔ)器可以分為多種類型。本文將從易失性存儲(chǔ)器和非易失性存儲(chǔ)器兩大類別出發(fā),詳細(xì)介紹幾種常見(jiàn)的存儲(chǔ)器類型
    的頭像 發(fā)表于 07-15 15:53 ?1335次閱讀

    plc有幾種輸出類型各有什么特點(diǎn)

    是實(shí)現(xiàn)控制功能的關(guān)鍵部分,不同類型的輸出具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。本文將詳細(xì)介紹PLC的幾種輸出類型及其特點(diǎn)。 一、PLC輸出類型概述 PLC的輸出
    的頭像 發(fā)表于 07-01 09:52 ?1992次閱讀

    伺服電機(jī)的常見(jiàn)類型詳解

    電機(jī)的幾種常見(jiàn)類型,包括直流伺服電機(jī)、步進(jìn)伺服電機(jī)、交流伺服電機(jī)、無(wú)刷伺服電機(jī)以及線性伺服電機(jī),并探討它們的工作原理、特點(diǎn)及應(yīng)用領(lǐng)域。
    的頭像 發(fā)表于 05-24 15:41 ?945次閱讀

    功率放大器的幾種常見(jiàn)類型

    功率放大器,簡(jiǎn)稱功放,是音響系統(tǒng)的重要組成部分,其主要作用是將音頻信號(hào)放大,以驅(qū)動(dòng)揚(yáng)聲器發(fā)出更大的聲音。在音頻領(lǐng)域,功率放大器的種類繁多,各具特色。本文將對(duì)功率放大器的幾種常見(jiàn)類型進(jìn)
    的頭像 發(fā)表于 05-23 16:03 ?1110次閱讀

    電池的常見(jiàn)類型及其特點(diǎn)

    電池,作為現(xiàn)代社會(huì)中不可或缺的能源供應(yīng)設(shè)備,廣泛應(yīng)用于各個(gè)領(lǐng)域,從便攜式電子設(shè)備到大型工業(yè)設(shè)備,甚至包括新能源汽車等。隨著科技的進(jìn)步,電池的種類也日益增多,每種電池都有其獨(dú)特的特點(diǎn)和應(yīng)用場(chǎng)景。本文將詳細(xì)介紹幾種常見(jiàn)的電池類型及其
    的頭像 發(fā)表于 05-21 16:41 ?2625次閱讀

    OpenHarmony開(kāi)發(fā)實(shí)例:【鴻蒙.bin文件燒錄】

    如何使用HiBurn工具燒錄鴻蒙的.bin文件到Hi3861開(kāi)發(fā)板。
    的頭像 發(fā)表于 04-14 09:54 ?306次閱讀
    OpenHarmony開(kāi)發(fā)實(shí)例:【<b class='flag-5'>鴻蒙</b>.bin<b class='flag-5'>文件</b>燒錄】

    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn):【文件管理】

    ]?、[@ohos.file.fs]、[@ohos.app.ability.contextConstant] 等接口,實(shí)現(xiàn)了增添文件、刪除文件、查找指定類型文件
    的頭像 發(fā)表于 03-20 21:57 ?506次閱讀
    <b class='flag-5'>鴻蒙</b>開(kāi)發(fā)實(shí)戰(zhàn):【<b class='flag-5'>文件</b>管理】

    常用的角速度傳感器包括幾種類型

    常用的角速度傳感器包括幾種類型? 常用的角速度傳感器包括以下幾種類型: 1. 陀螺儀:陀螺儀是最常見(jiàn)的角速度傳感器之一。它通過(guò)測(cè)量旋轉(zhuǎn)物體相對(duì)于某個(gè)參考點(diǎn)的角速度來(lái)確定旋轉(zhuǎn)物體的角度變化。其中最
    的頭像 發(fā)表于 01-03 17:13 ?1078次閱讀

    板對(duì)板連接器的幾種類型

    板對(duì)板連接器是一種常用于電子設(shè)備的連接器類型,用于連接不同電路板之間的傳輸信號(hào)和數(shù)據(jù)。隨著電子設(shè)備的發(fā)展和迭代升級(jí),板對(duì)板連接器的種類也變得越來(lái)越多。本文將詳細(xì)介紹幾種常見(jiàn)的板對(duì)板連
    的頭像 發(fā)表于 12-15 13:54 ?3818次閱讀

    springboot的全局配置文件幾種

    、服務(wù)器端口等等。本文將詳細(xì)介紹Spring Boot的全局配置文件,包括其類型、常見(jiàn)的配置項(xiàng)以及使用方法。 第一部分:Spring Boot全局配置文件
    的頭像 發(fā)表于 12-03 15:28 ?1323次閱讀

    常見(jiàn)的光纖跳線類型有哪幾種

    在實(shí)際應(yīng)用,常見(jiàn)的光纖跳線類型有以下幾種: LC光纖跳線:它采用操作方便的模塊化插孔(RJ)閂鎖機(jī)理制成,連接SFP光模塊,常用于路由器。 SC光纖跳線:它的外殼呈矩形,緊固方式是采
    的頭像 發(fā)表于 10-30 11:20 ?1469次閱讀

    MCU批量生產(chǎn)下載程序的幾種常見(jiàn)方法

    MCU批量生產(chǎn)下載程序的幾種常見(jiàn)方法
    的頭像 發(fā)表于 10-24 17:22 ?1374次閱讀
    MCU批量生產(chǎn)下載程序的<b class='flag-5'>幾種</b><b class='flag-5'>常見(jiàn)</b>方法

    磁柵尺有幾種常見(jiàn)故障?

    磁柵尺有幾種常見(jiàn)故障?磁柵尺是一種高精度的測(cè)量工具,主要用于數(shù)控車床、數(shù)控機(jī)床等設(shè)備。但是,在使用,磁柵尺也會(huì)出現(xiàn)一些常見(jiàn)的故障。下面我
    的頭像 發(fā)表于 09-26 14:44 ?2747次閱讀
    磁柵尺有<b class='flag-5'>幾種</b><b class='flag-5'>常見(jiàn)</b>故障?