侵权投诉

鸿蒙应用中的几种常见类型的文件

华为麒麟 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

原文标题:一文搞懂鸿蒙OS应用的目录结构

文章出处:【微信号:Huawei_Kirin,微信公众号:华为麒麟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

开源大师兄 青少年OpenHarmony开发板硬件特性介绍

继OpenHarmony 3.0  LTS版本于 2021 年 9 月 30 日上线以来,在包括教育....
发表于 10-27 12:14 80次 阅读
开源大师兄 青少年OpenHarmony开发板硬件特性介绍

《道德经》原子化服务UX历程和后续升级计划

发表于 10-27 11:36 0次 阅读
《道德经》原子化服务UX历程和后续升级计划

网易云和腾讯互掐起来了?鸿蒙“后院”起火了

今天打开手机老王看到了一条有意思的新闻:“网易云和腾讯QQ音乐都说自己是第一家接入鸿蒙的流媒体音乐,要互掐了吗?” 发...
发表于 10-27 10:08 0次 阅读

射频芯片国产化到哪一步了

自从荣耀从华为中独立出来后,虽然在管理、股权上已经毫无联系,但是我们还是能从荣耀今年以来推出的产品中....
的头像 电子发烧友网 发表于 10-27 10:03 114次 阅读

云服务厂商掀起自研芯片潮 Arm将成为首选

电子发烧友网报道(文/周凯扬)在近期举办的云栖大会上,阿里巴巴正式发布了旗下平头哥自研的“倚天710....
的头像 电子发烧友网 发表于 10-27 09:46 119次 阅读

特斯拉、华为相继入局的储能业务到底有何魔力

电子发烧友网报道(文/章鹰)以传统能源为主导的旧时代开始结束,一个以电动车、新能源、储能相结合的新时....
的头像 电子发烧友网 发表于 10-27 09:03 142次 阅读

HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

作者:yuzhiqiang,UI编程框架首席技术专家在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0、多语...
发表于 10-26 18:48 101次 阅读
HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

HarmonyOS IDE工具DevEco 新版本3.0 Beta1发布

2021年10月22日的华为开发者大会HDC.Together 2021主题演讲会上,我们发布了HarmonyOS 3.0.0开发者预览版。预览版本中包含...
发表于 10-26 18:16 202次 阅读
HarmonyOS IDE工具DevEco 新版本3.0 Beta1发布

华为针对流量特征优化开源的Open MPI软件

在广东珠海举行的全国高性能计算学术年会(CCF HPC China 2021)上,中国科学技术大学与....
的头像 华为数据通信 发表于 10-26 17:49 253次 阅读

鸿蒙3.0给业内带来了哪些惊喜

据海外调研机构数据预测,2021年全球移动操作系统市场,Android占据73%的市场份额,苹果iO....
的头像 电子发烧友网 发表于 10-26 17:35 322次 阅读

华为AI全栈硬件架构助力应对人工智能发展挑战

人工智能在21世纪以后,经历了PC、互联网以及移动互联网这几波浪潮之后,又进入了新一波浪潮,从201....
的头像 电子发烧友网 发表于 10-26 17:11 190次 阅读

第二届HarmonyOS开发者创新大赛正式启动 梦想再度启航

在10月22日举办的 华为 开发者大会(Together)上,第二届“ HarmonyOS 开发者创....
发表于 10-26 17:09 75次 阅读
第二届HarmonyOS开发者创新大赛正式启动 梦想再度启航

华为开发者大会有什么亮点

华为开发者大会2021于10月22至24在广东松山湖举行,开发者大会HDC 2021主题演讲嘉宾阵容....
的头像 lhl545545 发表于 10-26 17:03 270次 阅读

什么人会叁加华为开发者大会

华为开发者大会2021在广东东莞盛大召开,2021华为开发者大会参会者有华为专家、全球开发者等受邀参....
的头像 lhl545545 发表于 10-26 16:42 295次 阅读

华为开发者大会2021 10月官网

华为开发者大会2021近日正式在广东举行,本次大会聚焦HarmonyOS、智能家居、智慧办公、HMS....
的头像 lhl545545 发表于 10-26 16:26 343次 阅读

持续创新 华为助力运营商建设绿色5G网络

近日,在2021共赢未来“绿色ICT,绿色发展”峰会期间,华为SingleRAN产品线总裁姜旭冬发表....
的头像 华为无线网络 发表于 10-26 16:20 337次 阅读

人工智能将在业务决策中发挥重要作用

10月22日华为开发者大会2021(Together)在东莞松山湖正式开幕。 华为消费者业务云服务总....
的头像 华为开发者社区 发表于 10-26 16:08 345次 阅读

“众家共建OpenHarmony,赋能千行百业”论坛圆满召开

开放原子开源基金会旗下开源项目 OpenAtom OpenHarmony (以下简称“OpenHar....
的头像 话说科技 发表于 10-26 15:46 137次 阅读
“众家共建OpenHarmony,赋能千行百业”论坛圆满召开

携住科技与华为达成合作,推出“携住数智酒店”服务卡片

10月22日-24日,华为开发者大会2021(Together)在东莞松山湖正式开幕。作为国内知名的....
的头像 话说科技 发表于 10-26 15:39 123次 阅读
携住科技与华为达成合作,推出“携住数智酒店”服务卡片

今年双11如何选手机?来看看华为nova9系列的口碑就知道

随着今年双11临近,想要买新机的用户可要提前准备了。对于年轻人来说,购买价格过于昂贵的手机太不实际,....
发表于 10-26 15:26 52次 阅读
今年双11如何选手机?来看看华为nova9系列的口碑就知道

HDC2021HarmonyOS学生公开课:校园布道未来可循

为了让学生了解HarmonyOS最新技术、商业价值、生态价值,以及学生开发者如何成长等信息,10月2....
的头像 话说科技 发表于 10-26 15:06 156次 阅读
HDC2021HarmonyOS学生公开课:校园布道未来可循

HarmonyOS原子化服务新赛道:系统级入口服务中心

10月22日-24日,为期三天的华为开发者大会2021(Together)在东莞举行。本次大会《Ha....
的头像 话说科技 发表于 10-26 15:05 170次 阅读
HarmonyOS原子化服务新赛道:系统级入口服务中心

华为开发者大会2021上市股票

华为开发者大会2021上市股票有哪些?华为开发者大会2021上市股票有中国长城、中国软件、金山办公、....
的头像 lhl545545 发表于 10-26 14:37 201次 阅读

华为2021开发者大会最新消息

华为开发者大会2021在中国松山湖举行,会上,华为公司基于OpenHarmony提供了Harmony....
的头像 lhl545545 发表于 10-26 14:20 185次 阅读

彭松深入定义了C.A.F模型 构建联接竞争力创造新增长

第七届全球超宽带高峰论坛(Ultra-Broadband Forum 2021)在迪拜开幕。期间,华....
的头像 华为数据通信 发表于 10-26 14:16 127次 阅读

全面升级推广服务,华为应用市场商业推广携开发者共创增长新价值

10月23日,在华为开发者大会2021(Together)期间,华为应用市场针对商业推广新能力、新平....
发表于 10-26 13:38 22次 阅读
全面升级推广服务,华为应用市场商业推广携开发者共创增长新价值

2021华为开发者大会介绍

华为开发者大会2021精彩纷呈,大会上主要聚焦了HarmonyOS、智慧办公、HMS Core等热门....
的头像 lhl545545 发表于 10-26 11:45 234次 阅读

Harmony应用开发--自定义标题栏实战

在Harmony开发过程中,如果对系统标题栏感到不满意,可以进行自行修改设计。配置文件(config.json)修改,在module下添加下面内...
发表于 10-26 11:37 101次 阅读
Harmony应用开发--自定义标题栏实战

华为开发者大会全程回顾

华为开发者大会2021(Together)在东莞松山湖已经完美落幕,下面我们一起来看看2021华为开....
的头像 lhl545545 发表于 10-26 11:16 209次 阅读

2021华为开发者大会受益公司

华为2021开发者大会近日在广东东莞正式召开,金山办公、万兴科技等鸿蒙概念股有望获益,此外中国软件为....
的头像 lhl545545 发表于 10-26 11:02 167次 阅读

2021华为开发者大会 润和软件受邀参加

润和软件股份有限公司受邀参加HDC.Together华为开发者大会2021,润和软件早前就已经加入了....
的头像 lhl545545 发表于 10-26 10:41 288次 阅读

华为开发者大会2021时间表

华为开发者大会2021近日在东莞完美落幕,举办时间为三天,华为发布了HarmonyOS 3开发者预览....
的头像 lhl545545 发表于 10-26 10:26 239次 阅读

华为开发者大会2021鸿蒙系统升级

2021华为开发者大会10月22日至24日如期在松山湖举行,会上,华为正式发布了HarmonyOS3....
的头像 lhl545545 发表于 10-26 10:08 247次 阅读

华为开发者大会在哪里看

2021年华为开发者大会近日正式在东莞松山湖举行,会上华为发布了HarmonyOS 3开发者预览版、....
的头像 lhl545545 发表于 10-26 09:56 167次 阅读

快讯:特斯拉市值突破1万亿美元 孟晚舟结束隔离已回到华为工作岗位

近日,特斯拉股价大涨,市值首次突破一万亿美元大关。特斯拉市值再升一个台阶,特斯拉CEO马斯克的身家也....
的头像 lhl545545 发表于 10-26 09:18 345次 阅读

万物智联与烟火人间 HDC 2021华为开发者大会 一场跨越20年的双向奔赴

自从2011年,Gartner在著名的“新兴技术炒作周期”上,增加了一个新技术名词:物联网。IoT从....
的头像 脑极体 发表于 10-26 09:00 805次 阅读
万物智联与烟火人间 HDC 2021华为开发者大会 一场跨越20年的双向奔赴

2021华为开发者大会主题演讲_王成录PPT

整理了一下2021华为开发者大会主题演讲PPT_王成录_Al赋能万物智联新时代 ...
发表于 10-26 08:36 101次 阅读

华为开发者大会2021在哪

华为开发者大会2021在广东东莞松山湖举行,时间为三天,10月22至24天,华为官方已经公布了开发者....
的头像 lhl545545 发表于 10-25 17:53 446次 阅读

华为开发者大会2021发布了什么产品

华为开发者大会2021发布了什么产品?华为开发者大会2021发布了鸿蒙3.0、HMS Core、智能....
的头像 lhl545545 发表于 10-25 17:09 337次 阅读

太强了!华为自研鸿蒙编程语言,行业大佬都已经偷偷学起来了

华为开发者大会 2021(Together)上,Harmony OS 3 开发者预览版正式发布,华为鸿蒙又是一个历史性的进步啊,而且,华为还表...
发表于 10-25 16:53 270次 阅读

HarmonyOS 3.0.0开发者预览版全新发布

2021年10月22日在华为开发者大会HDC.Together 2021 主题演讲上,我们发布了HarmonyOS 3.0.0开发者预览版,主要内容包括:...
发表于 10-25 15:49 402次 阅读
HarmonyOS 3.0.0开发者预览版全新发布

不容错过!鸿蒙开发必备神器,老王月薪过万的秘诀都在这了

大家应该都知道在华为开发者大会HDC.Together 2021主题演讲会上,华为发布了HarmonyOS3.0.0开发者预览版。 预览版本中...
发表于 10-25 14:47 44次 阅读