第十六讲_HarmonyOS应用程序包介绍
目录
第十六讲_HarmonyOS应用程序包介绍
HarmonyOS应用程序包介绍
1. 应用程序包概述
官方推荐基于
Stage
模型开发
HarmonyOS
应用程序,一个应用可以包含一个或多个
Module
。
1.1 多 Module 设计的好处
支持模块化开发
: 一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。
Module
中可以包含源代码、资源文件、第三方库、配置文件等,每一个
Module
可以独立编译,实现特定的功能。
支持多设备适配
: 一个应用往往需要适配多种设备类型,在采用多
Module
设计的应用中,每个
Module
都会标注所支持的设备类型。那么在应用市场分发应用包时,也能够根据设备类型做精准的筛选和匹配,从而将不同的包合理的组合和部署到对应的设备上。
1.2 Module 的类型

Ability类型的Module:承载应用的功能和特性,是应用安装和运行的基本单元。Entry类型的Ability:作为应用的主模块,实现应用入口的功能特性。一个应用只能包含唯一一个 Entry。Feature类型的Ability:作为应用的特性模块,实现除 Entry 以外的功能特性。一个应用中可以包含一个或多个Feature,也可以不含。
Library类型的Module:共享代码和资源,不能独立安装运行在设备上,只能作为应用的依赖项被引用。Static类型的Library:支持应用内共享,也可以发布后供其他应用使用。编译后生成一个.har后缀的文件,多包引用相同的HAR时,会导致 App 包膨大。Shared类型的Library:当前仅支持应用内共享。编译后生成一个.hsp后缀的文件,当多包同时引用同一个共享包时,采用HSP替代HAR,可以避免HAR造成的多包间代码和资源的重复拷贝,从而减小应用包大小。
2. 应用程序包结构

2.1 应用的配置文件
在
AppScope
目录下
app.json5
配置文件主要包含以下内容:
- 应用的全局配置信息,包含应用的 Bundle 名称、开发厂商、版本号等基本信息。
- 特定设备类型的配置信息。
module.json5
配置文件主要包含以下内容:
- Module 的基本配置信息,包含 Module 名称、类型、描述、支持的设备类型等基本信息。
- 应用组件信息,包含 UIAbility 组件和 ExtensionAbility 组件的描述信息。
- 应用运行过程中所需的权限信息。
2.2 资源目录

base目录中的资源文件会被编译成二进制文件,并赋予资源文件 ID。通过指定资源类型(type)和资源名称(name)引用。rawfile目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件 ID。通过指定文件路径和文件名引用。
3. 应用程序编译后包结构

编译后,
Module
中的文件会发生如下变更:
- ets目录:ArkTS源码编译生成.abc文件。
- resources目录:
AppScope目录下的资源文件会合入到Module下面资源目录中,如果两个目录下的存在重名文件,编译打包后只会保留AppScope目录下的资源文件。 - module配置文件:
AppScope目录下的app.json5文件字段会合入到Module下面的module.json5文件之中,编译后生成HAP或HSP最终的module.json文件。