揭开HarmonyOS工程目录结构的神秘面纱

目录

一、引言

二、HarmonyOS 工程目录总览

三、关键目录深度剖析

(一)AppScope 目录

(二)entry 目录

(三)oh_modules 目录

四、重要配置文件详解

(一)build-profile.json5

(二)hvigorfile.ts

(三)oh-package.json5

五、资源目录解析

(一)AppScope/resources 目录

(二)entry/src/main/resources 目录

六、实际开发中的应用

(一)代码编写

(二)资源管理

(三)配置调整

七、总结与展望


一、引言

        在科技飞速发展的当下,HarmonyOS 作为一款极具创新性的操作系统,正逐渐在全球科技领域崭露头角,其影响力与日俱增。自问世以来,HarmonyOS 凭借独特的分布式技术、出色的性能优化以及良好的生态兼容性,迅速在智能手机、平板电脑、智能穿戴设备、智慧屏、智能家居等众多领域得到广泛应用。据统计,截至 [具体时间],HarmonyOS 设备的激活数量已达 [X] 亿,成为全球增长最为迅速的操作系统之一。在国内市场,华为智能手机搭载 HarmonyOS 的比例不断攀升,逐渐形成了规模庞大的用户群体 ,甚至在 2024 年第一季度,HarmonyOS 在中国市场的份额达到了 17%,首次超越苹果 iOS,成为中国第二大操作系统。

        HarmonyOS 之所以能够在短时间内取得如此显著的成就,其先进的技术架构和设计理念功不可没。而深入了解 HarmonyOS 的工程目录结构,对于开发者而言,就如同掌握了一把开启 HarmonyOS 开发大门的钥匙,至关重要。它不仅是开发者进行应用开发的基础,更是理解 HarmonyOS 架构设计和开发规范的关键所在。只有熟悉工程目录结构,开发者才能更加高效地组织代码、管理资源,实现应用的快速开发与迭代。同时,清晰的目录结构也有助于团队协作开发,提高开发效率,减少开发过程中可能出现的错误和冲突。接下来,就让我们一同揭开 HarmonyOS 工程目录结构的神秘面纱,探索其中的奥秘。

二、HarmonyOS 工程目录总览

        为了让大家能更清晰直观地了解 HarmonyOS 工程目录结构,下面先以树状图的形式展示其全貌:

ProjectName

├── AppScope

│ ├── resources

│ │ ├── base

│ │ │ ├── element

│ │ │ │ ├── strings.json

│ │ │ │ └── ...

│ │ │ ├── media

│ │ │ │ ├── icon.png

│ │ │ │ └── ...

│ │ │ └── ...

│ │ └── ...

│ └── app.json5

├── entry

│ ├── build-profile.json5

│ ├── hvigorfile.ts

│ ├── oh-package.json5

│ ├── src

│ │ ├── main

│ │ │ ├── ets

│ │ │ │ ├── entryability

│ │ │ │ │ └── EntryAbility.ts

│ │ │ │ └── pages

│ │ │ │ ├── index

│ │ │ │ │ ├── index.ets

│ │ │ │ │ ├── index.css

│ │ │ │ │ └── ...

│ │ │ │ └── ...

│ │ │ ├── resources

│ │ │ │ ├── base

│ │ │ │ │ ├── element

│ │ │ │ │ │ ├── strings.json

│ │ │ │ │ │ └── ...

│ │ │ │ │ ├── media

│ │ │ │ │ │ ├── icon.png

│ │ │ │ │ │ └── ...

│ │ │ │ │ └── ...

│ │ │ │ └── ...

│ │ │ └── module.json5

│ │ └── ohosTest

│ │ └── ...

│ └── ...

├── build-profile.json5

├── hvigorfile.ts

├── oh-package.json5

├── oh_modules

│ └── ...

├── .gitignore

└── ...

        在上述树状图中,我们可以看到 HarmonyOS 工程主要包含以下几个部分:

  • AppScope:该目录用于存放应用全局所需要的资源文件,如app.json5文件,它是应用的全局配置文件,包含应用的包名、版本号、图标、应用名等公共配置信息;resources目录下的base文件夹又包含element和media等子文件夹,element主要存放公共的字符串、颜色等资源,media则存放全局公共的多媒体资源文件 ,如图片、音频等。

  • entry:应用的主模块,存放 HarmonyOS 应用的核心代码、资源等内容。其中,src/main/ets目录存放 ArkTS 源代码;entryability文件夹用于存放应用或服务的入口文件,管理应用逻辑和生命周期;pages文件夹存放 UI 界面相关代码文件;resources目录存放模块公共资源文件,和AppScope/resources类似,但这里的资源主要供entry模块使用;module.json5是模块的配置文件,包含当前模块的名字、类型、描述信息、入口 Ability 名称、支持运行的设备类型等重要配置 。此外,build-profile.json5是模块级配置信息文件,涵盖编译构建配置项;hvigorfile.ts是模块级构建脚本;oh-package.json5是模块级依赖配置信息文件。

  • 根目录相关文件:在工程根目录下,build-profile.json5是工程级配置信息文件,包括签名、产品配置等;hvigorfile.ts是工程级编译构建任务脚本;oh-package.json5是工程级依赖配置文件;oh_modules目录用于存放工程依赖的源文件;.gitignore文件用于指定版本管理时需要忽略的文件 。

        通过这个树状图和简要介绍,相信大家对 HarmonyOS 工程目录已经有了一个初步的整体认知。接下来,我们将深入每个主要目录和文件,详细剖析它们的具体作用和内容。

三、关键目录深度剖析

(一)AppScope 目录

        AppScope 目录在 HarmonyOS 工程中起着至关重要的作用,它专门用于存放应用全局所需要的资源文件 ,是整个应用资源管理的核心区域。在这个目录下,有两个主要的组成部分:resources文件夹和app.json5文件。

        resources文件夹犹如一个庞大的资源仓库,里面存放着应用在各个方面可能用到的公共资源。其中,base子文件夹又进一步细分出多个子目录,如element和media等。element文件夹主要用于存放公共的字符串、颜色、布尔值等基本元素资源,这些资源就像是构建应用的基石,被应用的各个部分广泛使用。例如,在一个社交类应用中,element文件夹下的strings.json文件可能会存放着诸如 “登录”“注册”“发送消息” 等常用的字符串资源,这样当应用在不同界面需要展示这些文本时,都可以从这里统一获取,方便进行多语言切换和文本内容的管理 。而media文件夹则主要存放全局公共的多媒体资源文件,像应用的图标、引导页图片、默认音频等都可以放置在此处。比如一款音乐播放应用,其默认的播放、暂停、上一曲、下一曲等图标就可以存放在media文件夹中,实现资源的全局共享和统一管理。

        app.json5文件则是应用的全局配置信息文件,它就像是应用的 “身份证” 和 “说明书”,记录了应用的众多关键信息 。其中,bundleName以反域名形式作为应用的唯一标识,就如同每个人的身份证号码一样,确保应用在系统中的唯一性,在应用发布和安装时,系统会通过这个包名来识别和区分不同的应用。versionCode和versionName用于版本管理,versionCode是一个用于区分版本的数字,主要供系统识别,方便在应用更新、版本兼容性检查等场景中使用;而versionName则是以字符串形式呈现给用户,如 “1.0.0”“2.5.3” 等,让用户能够直观地了解应用的版本情况。icon对应应用的显示图标,它是应用在设备桌面上展示给用户的第一印象,一个简洁、美观且富有代表性的图标能够吸引用户的注意力;label则是应用名,是用户在设备上看到的应用的名称,清晰准确的应用名有助于用户快速识别和记忆应用 。此外,app.json5文件还可能包含应用的描述信息、最低支持的 API 版本、目标 API 版本等重要配置,这些信息对于应用的正常运行和适配不同设备起着关键作用。例如,一个电商应用的app.json5文件中,除了上述基本信息外,还会记录应用的简要介绍、支持的最低 HarmonyOS 版本等信息,以确保应用能够在合适的环境中稳定运行,并为用户提供良好的使用体验。

(二)entry 目录

        entry 目录在 HarmonyOS 应用开发中占据着核心地位,它是应用的主模块,承载着整个应用的核心代码、资源以及关键配置信息,如同人体的心脏,为应用的运行提供着源源不断的动力和支持。

        进入entry目录,首先映入眼帘的是一系列重要文件和文件夹。build-profile.json5是模块级配置信息文件,它详细记录了当前模块的各种编译构建配置项,包括签名信息、编译 SDK 版本、兼容 SDK 版本、产品配置等 。这些配置信息就像是建筑施工的蓝图,指导着 Hvigor 构建工具如何将代码和资源构建成可运行的应用或服务。例如,签名信息用于确保应用的安全性和完整性,在应用发布和安装时,系统会验证签名以防止应用被篡改;编译 SDK 版本则决定了应用可以使用的 HarmonyOS API 的范围和特性,开发人员需要根据应用的功能需求和目标设备选择合适的 SDK 版本。

        hvigorfile.ts是模块级构建脚本,它允许开发者自定义编译构建工具版本、控制构建行为的配置参数,对构建过程进行精细化管理。通过编写和配置hvigorfile.ts,开发者可以实现诸如自定义编译步骤、优化构建流程、添加构建插件等功能,从而提高开发效率和应用质量。比如,在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值