色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

簡述HarmonyOS 應用的目錄結構

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

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

①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 組成。

一個典型的 HarmonyOS 應用的具體目錄結構如圖 2 所示,主要包括 entry、gradle 目錄等,其中的 build 目錄是應用編譯構建成功后自動生成的目錄。

0ff0464a-00ef-11ec-9bcf-12bb97331649.jpg

HarmonyOS 應用目錄結構圖

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

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

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

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

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

圖 3

特別注意的是:所有資源如包括控件名稱、字符串常量、動畫資源、長度資源、布局資源、圖片、音視頻資源等都將在 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文件,程序員可根據自己的需要添加其他類型的文件。

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

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 版本管理需要忽略的文件。

編輯:jq

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

    關注

    30

    文章

    4798

    瀏覽量

    68728
  • 庫文件
    +關注

    關注

    5

    文章

    33

    瀏覽量

    14503
  • HarmonyOS
    +關注

    關注

    79

    文章

    1979

    瀏覽量

    30279
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發指導類文檔更新速遞(下)

    伴隨著HarmonyOS 5.0.0 Release、HarmonyOS 5.0.1 Release版本的發布,HarmonyOS官網文檔也帶來了不少上新內容。本期HarmonyOS
    的頭像 發表于 12-30 09:54 ?107次閱讀
    <b class='flag-5'>HarmonyOS</b>開發指導類文檔更新速遞(下)

    AWTK 最新動態:支持鴻蒙系統(HarmonyOS Next)

    導讀HarmonyOS是全球第三大移動操作系統,有巨大的市場潛力,在國產替代的背景下,機會多多,AWTK支持HarmonyOS,讓AWTK開發者也能享受HarmonyOS生態的紅利。AWTK全稱
    的頭像 發表于 11-06 08:03 ?267次閱讀
    AWTK 最新動態:支持鴻蒙系統(<b class='flag-5'>HarmonyOS</b> Next)

    【米爾NXP i.MX 93開發板試用評測】3、NXP的MCU工程目錄結構和源碼分析

    環境無縫集成。 而NXP的項目工程,可以說是CMake工程的優秀示范。 目錄結構 這種目錄結構有助于提高軟件開發的效率和質量,特別是在大型項目和團隊合作的環境中。通過合理的組織和模塊化
    發表于 09-21 21:11

    簡述基本與非門sr鎖存器的結構及工作原理

    。以下是對其基本結構及工作原理的簡述: 一、結構 基本與非門SR鎖存器主要由兩個與非門組成,這兩個與非門的輸出分別連接到對方的輸入端,形成交叉反饋的結構。具體來說,鎖存器有兩個輸入端S
    的頭像 發表于 08-28 11:01 ?1962次閱讀

    簡述毫米波雷達的結構、原理和特點

    毫米波雷達是一種利用毫米波段電磁波進行探測和測量的雷達系統,具有高分辨率、高靈敏度、高抗干擾能力等特點,在軍事、航空、航天、交通、氣象等領域得到廣泛應用。 一、毫米波雷達的結構 毫米波雷達主要由天線
    的頭像 發表于 08-16 10:05 ?2115次閱讀

    簡述半導體原理——晶體管家族的核心工作機制

    簡述半導體原理——晶體管家族的核心工作機制
    的頭像 發表于 07-20 08:14 ?994次閱讀
    <b class='flag-5'>簡述</b>半導體原理——晶體管家族的核心工作機制

    簡述數控機床對結構與性能的要求

    數控機床是一種采用數字化控制技術進行加工的機床,具有高精度、高效率、高自動化程度等特點。數控機床在機械制造、航空航天、汽車制造、模具制造等領域得到廣泛應用。為了滿足不同加工需求,數控機床對結構與性能
    的頭像 發表于 07-01 14:06 ?886次閱讀

    簡述無極繼電器的結構和工作原理

    無極繼電器是一種電子控制器件,廣泛應用于電力系統、自動化控制、通信、計算機等領域。它具有體積小、重量輕、動作快、可靠性高、壽命長等優點。本文將詳細介紹無極繼電器的結構和工作原理。 一、無極繼電器
    的頭像 發表于 06-24 09:36 ?3525次閱讀

    HarmonyOS開發案例:【常用組件與布局】

    HarmonyOS ArkUI提供了豐富多樣的UI組件,您可以使用這些組件輕松地編寫出更加豐富、漂亮的界面。
    的頭像 發表于 05-09 18:20 ?1240次閱讀
    <b class='flag-5'>HarmonyOS</b>開發案例:【常用組件與布局】

    HarmonyOS開發案例:【首選項】

    基于HarmonyOS的首選項能力實現的一個簡單示例。
    的頭像 發表于 04-19 16:20 ?1276次閱讀
    <b class='flag-5'>HarmonyOS</b>開發案例:【首選項】

    簡述結構光成像

    首先我們來看看結構光成像,它是使用特定的光圖案和2D相機來捕獲物體表面的三維輪廓的一種成像方法。其原理是將特定的窄帶光投影到三維形狀物體的表面上會產生一條照明線,該照明線從投影器的其他角度來看存在
    的頭像 發表于 03-05 16:35 ?714次閱讀
    <b class='flag-5'>簡述</b>面<b class='flag-5'>結構</b>光成像

    2024款鴻蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    實戰,還包含了HarmonyOS 仿小米App實戰。詳情參考大綱或者目錄介紹。 根據華為鴻蒙生態推廣部門介紹,HarmonyOS4和未來的HarmonyOS5(
    發表于 02-28 10:29

    ADS應用技巧—如何修改ADS的home目錄

    這里說的home目錄就是啟動ADS后,默認打開的路徑,通常是你存放ADS工程所在的目錄
    的頭像 發表于 02-26 09:43 ?2291次閱讀
    ADS應用技巧—如何修改ADS的home<b class='flag-5'>目錄</b>?

    OpenHarmony 移植:build lite 配置目錄全梳理

    命令行工具 hb (HarmonyOS|OpenHarmony Build 編譯構建系統的縮寫) 都很熟悉了。這是一個基于 gn 和 ninja 的構建系統,以支持 OpenHarmony 組件化開
    的頭像 發表于 02-18 16:42 ?981次閱讀

    harmonyos和安卓的區別

    HarmonyOS是由華為開發的一款全場景分布式操作系統,而安卓(Android)則是由谷歌開發的移動操作系統。雖然兩者都是操作系統,但它們在很多方面存在明顯的區別。下面是關于HarmonyOS和安
    的頭像 發表于 01-10 17:55 ?3702次閱讀
    主站蜘蛛池模板: 久久人妻少妇嫩草AV蜜桃35I| 欧美黑人经典片免费观看| 日韩av国产av欧美天堂社区| 帝王被大臣们调教高肉| 色欲人妻AAAAAAA无码| 狠狠色狠狠色88综合日日91| 中文字幕久久久| 日本久久和电影| 国产看午夜精品理论片| 在线a视频| 日韩爽爽影院在线播放| 国内久久久久影院精品| 99热这里只有精品6| 午夜伦理yy44008影院| 美女网站免费看| 国产精品视频大全| 91视频夜色| 午夜视频在线瓜伦| 免费毛片播放| 国产亚洲精品久久孕妇呦呦你懂| 综合精品欧美日韩国产在线| 人妻少妇久久久久久97人妻| 国产亚洲欧美日韩综合综合二区 | 老板揉搓秘书丰满大乳| 动漫美女被爆挤奶歪歪漫画| 亚洲熟女丰满多毛XXXXX| 日本性xxx| 久久视频这里只精品99re8久| 动漫美女人物被黄漫在线看| 云南14学生真实初次破初视频| 四虎视频最新视频在线观看| 蜜桃麻豆WWW久久囤产精品免费 | ass女人下部欣赏| 一个人在线观看免费中文www| 日韩精品在线观看免费| 口工漫画r18全彩啪啪| 国产成人无码一区AV在线观看 | 浪货嗯啊趴下NP粗口黄暴| 国产精品久久久久久人妻精品蜜桃 | 久久久国产精品免费A片蜜芽广| 动漫美女的禁|