1. 鸿蒙App包结构
1.1 应用/服务的发布形态
先看下华为开发文档中的介绍:
应用/服务的发布形态为APP Pack(Application Package,简称App),它是由一个或多个HAP(Harmony Ablity Package)包以及描述App Pack属性的pack.info文件组成。
在iOS系统可以理解为.ipa文件,在Android系统可以理解为.apk文件,但是上面又提到了HAP,这一点和iOS、Android又有什么不同呢?
1.2 HAP(Harmony Ablity Package)
一个HAP在工程目录中对应一个Module,其中包含代码、资源、第三方库及应用/服务配置文件组成。分为Entry和Feature两种类型:
- Entry:应用/服务的主模块,作为应用的入口,提供了应用的基础的功能;
- Feature:应用/服务的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装;
从上面对于HAP的描述来看,HAP可以理解为在鸿蒙官方提供的一种组件化方案,每一个应用/服务都必须有一个Entry类型的HAP,作为应用入口。另外,对于大型的应用/服务可以根据业务建立不同的Feature类型的HAP,选择性安装。
简单来说就是,简单的应用有一个Entry类型的HAP足以,复杂的应用可以考虑将业务拆成不同的Feature类型的HAP。
1.3 应用开发模型
不同的应用模型对应的工程目录会有所区别,这里先来了解下鸿蒙系统提供的应用模型。
应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象,它提供了应用程序必备的组件和运行机制。开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。
HarmonyOS应用模型的构成要素包括:
- 应用组件
- 是应用的基本组成单位,是应用的运行入口。可以理解为上面介绍的HAP;
- 应用进程模型
- 定义应用进程的创建和销毁方式,以及进程间的通信方式;
- 应用线程模型
- 定义应用进程内线程的创建和销毁方式、主线程和UI线程的创建方式、线程间的通信方式;
- 应用任务管理模型
- 负责管理模型定义任务(Mission)的创建和销毁方式,以及任务与组件间的关系;
- 应用配置文件
- 包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,用于提供给编译工具、应用市场和OS使用;
鸿蒙系统先后提供了两种应用模型:
- FA(Feature Ablity)模型:Harmony OS早期版本开始支持的模型,目前不再主推;
- Stage模型:HarmonyOS 3.1 Developer Preview版本新增的模型,目前主推。由于该模型中提供了AblityStage、WindowStage等类作为应用组件和Window窗口的舞台,所以称这种应用模型为Stage模型。
可能在某个时间点鸿蒙系统的设计大佬们发现当前的开发架构不足以支持复杂应用的开发,所以结合当时的设计架构提出了FA模型,然后又基于FA模型进行改进,形成了Stage模型。那之前的FA模型也不能丢呀,写在官方文档中既展示了鸿蒙系统的复杂性,又方便开发者们将两种应用模型进行对比,方便理解,哈哈😄
这里对于FA模型和Stage模型就不进入深入研究了,先有个大概理解即可,这篇文章的目的是介绍开发工程,之后再另起一篇文章学习下鸿蒙系统的两种应用开发模型。
1.4 Stage模型应用程序包结构
现在Stage应用模型是之后主推的,所以我们前期可以专注于这一种模型即可,包结构如下图所示:

从上面这个图中可以很清晰的理解前面对App Pack的介绍:
- 应用的发布形态是 xxx.app
- 一个app下

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



