那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙應用中的幾種常見類型的文件

華為麒麟 ? 來源:鴻蒙技術社區 ? 作者:starLWW ? 2021-08-20 10:06 ? 次閱讀

應用中的幾種常見類型的文件

①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,以及應用所需權限等信息,詳見應用配置文件。

⑤pack.info

描述應用軟件包中每個 HAP 的屬性,由 IDE 編譯生成,應用市場根據該文件進行拆包和 HAP 的分類存儲。

HAP 的具體屬性包括:

delivery-with-install:表示該 HAP 是否支持隨應用安裝。

“true”表示支持隨應用安裝;

“false”表示不支持隨應用安裝。

name:HAP 文件名。

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

device-type:表示支持該 HAP 運行的設備類型。

⑥HAR

HAR(HarmonyOS Ability Resources)可以提供構建應用所需的所有內容,包括源代碼、資源文件和 config.json 文件。

HAR 不同于 HAP,HAR 不能獨立安裝運行在設備上,只能作為應用模塊的依賴項被引用。

HarmonyOS 應用的目錄結構

HarmonyOS 應用發布形態為 APP Pack(Application Package,簡稱 APP),它是由一個或多個 HAP(HarmonyOS Ability Package)包以及描述每個 HAP(Ability 的部署包)屬性的 pack.info 文件組成。

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

所以我們代碼中的 entry 目錄其實就是一個應用的 Hap 包,它是 entry 類型的 Hap 包。接下來我們來了解下這些資源。

entry:應用的主模塊。一個 APP 中,對于同一設備類型必須有且只有一個 entry 類型的 HAP,可獨立安裝運行。

feature:應用的動態特性模塊。一個 APP 可以包含 0 個、一個或多個 feature 類型的 HAP。只有包含 Ability 的 HAP 才能夠獨立運行。

HAP 是 Ability 的部署包,HarmonyOS 應用代碼圍繞 Ability 組件展開,它是由一個或多個 Ability 組成。

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

build.gradle 文件是應用的環境配置文件,如指定編譯應用程序使用的 sdk 版本,依賴外部 maven 庫等。

gradle 目錄是 gradle 的配置文件,由系統自動生成,一般情況下不需要進行修改。

其中gradle》wrapper》gradle-wrapper.properties 文件一般用于指定應用使用的 gradle 版本。

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

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

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

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

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

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

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

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

entry》src》main》java 包括應用中所有的 java 文件,以包的形式進行組織。

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

該目錄下還可以添加其他業務邏輯處理的 java 類文件,如實現網絡操作、數據庫操作等業務類,用戶自定義的工具類等。需要注意的是,實現一個可視化的 Ability,Slice 并不是必須的。

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

resources 目錄包括兩大類目錄:

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

另一類是 rawfile 目錄,目錄中的資源文件會被直接打包進應用,不經過編譯,也不會被賦予資源文件 ID(不能被 ResourceTable 索引,通過指定文件路徑和文件名來引用)。

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

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

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

圖 6

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

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

boolean.json:布爾型資源

color.json:顏色資源

float.json:浮點型資源

intarray.json:整型數組資源

integer.json:整型資源

pattern.json:樣式資源

plural.json:復數形式資源

strarray.json:字符串數組資源

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

用 xml 文件來表示,比如我們項目中設置的圓角按鈕、按鈕顏色等都是通過引用這里的資源來統一管理的:

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

resources》base》layout:表示布局資源,用 xml 文件來表示。

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

resources》限定詞目錄:en_…,如 en_element、zh_element、en_GB-vertical-car-mdpi 等。限定詞目錄需要開發者自行創建。

目錄名稱由一個或多個表征應用場景或設備特征的限定詞組合而成,可以包含移動國家碼和移動網絡碼、語言、文字、橫豎屏、設備類型、顏色模式等限定詞。

對應限定詞的取值必須與當前的設備狀態完全一致,該目錄才能夠參與設備的資源匹配。

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

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

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

其中“app” 表示應用的全局配置信息,同一個應用的不同 HAP 包的“app”配置必須保持一致;“deviceConfig”表示應用在具體設備上的配置信息;“module”表示 HAP 包的配置信息。該標簽下的配置只對當前 HAP 包生效。

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

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

⑤entry》.gitignore:標識 git 版本管理需要忽略的文件。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    216

    文章

    34533

    瀏覽量

    253005
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2638

    瀏覽量

    66711
  • HarmonyOS
    +關注

    關注

    79

    文章

    1982

    瀏覽量

    30579

原文標題:一文搞懂鴻蒙OS應用的目錄結構

文章出處:【微信號:Huawei_Kirin,微信公眾號:華為麒麟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    焊接技術的幾種常見類型

    焊接技術是一種將兩個或多個金屬部件通過高溫或其他方法連接在一起的工藝。以下是幾種常見的焊接技術類型,每種技術都有其特定的應用場景和優缺點: 電弧焊(Arc Welding) 描述 :電弧焊是一種
    的頭像 發表于 01-19 13:54 ?395次閱讀

    鴻蒙Flutter實戰:10-常見問題集合

    # 鴻蒙Flutter實戰:10-常見問題集合 ## 1. 學習路徑應該是怎樣的,需要掌握哪些技術才具備鴻蒙 Flutter 開發能力 1.1 學習和掌握 Flutter 開發技術,這塊需要
    發表于 10-23 17:05

    檢測系統中常見的信號類型有哪些

    在檢測系統常見的信號類型多種多樣,這些信號類型根據被測物理量的不同而有所區別。以下是一些常見的信號
    的頭像 發表于 10-15 13:57 ?734次閱讀

    ad端口的幾種類型

    ,用于滿足不同設計需求。以下是在AD中常見幾種端口及相關類型的概述: 1. 端口(Port) 定義 :端口既可以表示單圖紙內部的網絡連接(與網絡標簽Net Label相似),也可以表示圖紙間的網絡連接。 功能 :在多圖紙設計
    的頭像 發表于 09-29 10:11 ?2446次閱讀

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

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

    試驗變壓器常見幾種類型

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

    一文讀懂常見存儲器類型

    存儲器是計算機系統中用于存儲和讀取數據的硬件組件,根據存儲介質和工作原理的不同,存儲器可以分為多種類型。本文將從易失性存儲器和非易失性存儲器兩大類別出發,詳細介紹幾種常見的存儲器類型
    的頭像 發表于 07-15 15:53 ?5139次閱讀

    plc有幾種輸出類型各有什么特點

    是實現控制功能的關鍵部分,不同類型的輸出具有不同的特點和應用場景。本文將詳細介紹PLC的幾種輸出類型及其特點。 一、PLC輸出類型概述 PLC的輸出
    的頭像 發表于 07-01 09:52 ?5699次閱讀

    伺服電機的常見類型詳解

    電機的幾種常見類型,包括直流伺服電機、步進伺服電機、交流伺服電機、無刷伺服電機以及線性伺服電機,并探討它們的工作原理、特點及應用領域。
    的頭像 發表于 05-24 15:41 ?1948次閱讀

    功率放大器的幾種常見類型

    功率放大器,簡稱功放,是音響系統的重要組成部分,其主要作用是將音頻信號放大,以驅動揚聲器發出更大的聲音。在音頻領域,功率放大器的種類繁多,各具特色。本文將對功率放大器的幾種常見類型
    的頭像 發表于 05-23 16:03 ?3486次閱讀

    電池的常見類型及其特點

    電池,作為現代社會中不可或缺的能源供應設備,廣泛應用于各個領域,從便攜式電子設備到大型工業設備,甚至包括新能源汽車等。隨著科技的進步,電池的種類也日益增多,每種電池都有其獨特的特點和應用場景。本文將詳細介紹幾種常見的電池類型及其
    的頭像 發表于 05-21 16:41 ?6018次閱讀

    OpenHarmony開發實例:【鴻蒙.bin文件燒錄】

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

    聊一下常見幾種無線遙控器及其可能使用的晶振頻率

    無線遙控器可以分為四種類型,其中每種類型可能采用不同的頻率晶振。今天KOAN凱擎小妹聊一下常見幾種無線遙控器及其可能使用的晶振頻率。
    的頭像 發表于 03-22 14:29 ?5392次閱讀

    鴻蒙開發實戰:【文件管理】

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

    功放分幾種類型,功放常見分類方式

    功放(Power Amplifier)作為音頻設備不可或缺的重要組成部分,廣泛應用于音響系統、電視機、電子設備等多個領域。功放按照不同的分類方式可以分成多種類型,本文將細致地介紹功放的常見分類方式
    的頭像 發表于 02-23 10:58 ?5491次閱讀
    澳门百家乐官网的公式| 温州百家乐官网的玩法技巧和规则| 百家乐庄不连的概率| 百家乐牌桌订做| 博彩老头排列三| 百家乐官网街机| 真人百家乐的玩法技巧和规则| 战神国际娱乐| 成都百家乐官网的玩法技巧和规则 | 免费百家乐游戏下| 百家乐官网兑换棋牌| 百家乐路单破| 百家乐官网游戏下裁| 百家乐用品| 香港百家乐官网玩| 大发888手机客户端下载| 百家乐庄闲点数| 大发888网站| 百家乐官网娱乐备用网址| 足球百家乐投注网出租| 电子百家乐官网博彩正网| 赌场百家乐网站| 百家乐官网怎么样玩| 欢乐博百家乐娱乐城| 百家乐官网游戏机子| 百家乐平注赢钱法| 百家乐官网稳赢赌法| 百家乐扑克多少张| 百家乐官网3宜3忌| 百家乐补第三张牌规则| 网上百家乐官网的技巧| 网上百家乐赌城| 百家乐官网澳门路规则算法| 百家乐怎样下注| 免费玩百家乐官网的玩法技巧和规则 | 玩百家乐官网的玩法技巧和规则 | 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 | 大嘴棋牌手机版| 六十甲子24山吉凶| 皇冠现金网娱乐城| 百家乐庄闲和各是多少|