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;
- 应用进程模型
- 定义应用进程的创建和销毁方式,以及进程间的通信方式;
- 应用线程模