Ezio's Blog
Posts Categories Tags Music Mood About
Ezio's Blog· Light
☰ Menu
Posts Categories Tags Music Mood About
Expand all Back to top Go to bottom

HarmonyOS-工程目录

Author: Ezio Date: February 18, 2024  10:29:14 Category: HarmonyOS

工程目录

新建工程目录如下:

image-20240218104119893

其中详细如下:

  • AppScope 中存放应用全局所需要的资源文件。
  • entry 是应用的主模块,存放 HarmonyOS 应用的代码、资源等。
  • oh_modules 是工程的依赖包,存放工程依赖的源文件。
  • build-profile.json5 是工程级配置信息,包括签名、产品配置等。
  • hvigorfile.ts 是工程级编译构建任务脚本,hvigor 是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
  • oh-package.json5 是工程级依赖配置文件,用于记录引入包的配置信息。

在 AppScope,其中有 resources 文件夹和配置文件 app.json5。AppScope > resources > base 中包含 element 和 media 两个文件夹,

  • 其中 element 文件夹主要存放公共的字符串、布局文件等资源。
  • media 存放全局公共的多媒体资源文件。

image-20240218104956334

模块级目录

image-20240218105255198

entry > src 目录中主要包含总的 main 文件夹,单元测试目录 ohosTest,以及模块级的配置文件。

  • main 文件夹中,ets 文件夹用于存放ets代码,resources 文件存放模块内的多媒体及布局文件等,module.json5 文件为模块的配置文件。
  • ohosTest 是单元测试目录。
  • build-profile.json5 是模块级配置信息,包括编译构建配置项。
  • hvigorfile.ts 文件是模块级构建脚本。
  • oh-package.json5 是模块级依赖配置信息文件。

进入 src > main > ets 目录中,其分为 entryability、pages 两个文件夹。

  • entryability 存放 ability 文件,用于当前 ability 应用逻辑和生命周期管理。
  • pages 存放UI界面相关代码文件,初始会生成一个Index页面。

image-20240218105727600

resources 目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在 element、media 文件夹中。

image-20240218105902429

app.json5

AppScope > app.json5 是应用的全局的配置文件,用于存放应用公共的配置信息。

image-20240218110118182

其中配置信息如下:

  • bundleName 是包名。
  • vendor 是应用程序供应商。
  • versionCode 是用于区分应用版本。
  • versionName 是版本号。
  • icon 对应于应用的显示图标。
  • label 是应用名。

module.json5

entry > src > main > module.json5 是模块的配置文件,包含当前模块的配置信息。

image-20240218110423258

其中 module 对应的是模块的配置信息,一个模块对应一个打包后的 hap 包,hap 包全称是 HarmonyOS Ability Package,其中包含了 ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表。

属性 描述
name 该标签标识当前 module 的名字,module 打包成 hap 后,表示 hap 的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一。
type 表示模块的类型,类型有三种,分别是 entry、feature 和 har。
srcEntry 当前模块的入口文件路径。
description 当前模块的描述信息。
mainElement 该标签标识 hap 的入口 ability 名称或者 extension 名称。只有配置为 mainElement 的 ability 或者 extension 才允许在服务中心露出。
deviceTypes 该标签标识 hap 可以运行在哪类设备上,标签值采用字符串数组的表示。
deliveryWithInstall 标识当前 Module 是否在用户主动安装的时候安装,表示该 Module 对应的HAP是否跟随应用一起安装。- true:主动安装时安装。- false:主动安装时不安装。
installationFree 标识当前 Module 是否支持免安装特性。- true:表示支持免安装特性,且符合免安装约束。- false:表示不支持免安装特性。
pages 对应的是 main_pages.json 文件,用于配置 ability 中用到的 page 信息。
abilities 是一个数组,存放当前模块中所有的 ability 元能力的配置信息,其中可以有多个 ability。

对于 abilities 中每一个 ability 的属性项,其描述信息如下表:

属性 描述
name 该标签标识当前 ability 的逻辑名,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127个字节)。
srcEntry ability 的入口代码路径。
description ability 的描述信息。
icon ability 的图标。该标签标识 ability 图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果ability 被配置为 MainElement,该标签必须配置。
label ability的标签名。
startWindowIcon 启动页面的图标。
startWindowBackground 启动页面的背景色。
visible ability 是否可以被其他应用程序调用,true 表示可以被其它应用调用, false 表示不可以被其它应用调用。
skills 标识能够接收的意图的 action 值的集合,取值通常为系统预定义的 action 值,也允许自定义。
entities 标识能够接收 Want 的 Entity 值的集合。
actions 标识能够接收的 Want 的 Action 值的集合,取值通常为系统预定义的 action 值,也允许自定义。

main_pages.json

src / main / resources / base / profile / main_pages.json 文件保存的是页面 page 的路径配置信息,所有需要进行路由跳转的 page 页面都要在这里进行配置。

image-20240218111023836

Author: Ezio

Permalink: https://ezioy.cn/2024/02/18/HarmonyOS-%E5%B7%A5%E7%A8%8B%E7%9B%AE%E5%BD%95/

License: Copyright (c) 2019 CC-BY-NC-4.0 LICENSE

Slogan: Nothing is true,Everything is permitted

Tag(s): # HarmonyOS
back · home
开闭原则 Mac安装Jenkins
Ezio © 2019 - 2026 | Powered by Hexo & Chic | 访客数量:   浏览次数: | 渝公网安备50011302222043 | 渝ICP备2023013933号-1