前一阵刚学习鸿蒙开发,读到官方文档这里时,多少有点迷糊。
这里涉及到一些比较抽象的关键词:Stage模型
、Module
、Ability
、Library
、HAR
、HSP
、HAP
、UIAbility
。
当时只是快速看了一下,就直接去敲代码了。
现在感觉有必要再好好梳理、理解一下,以便更好的掌握整个鸿蒙app的开发。
1、Stage模型
Stage模型就是一种应用程序能力的抽象,对于开发者最直观的感受是开发态的工程结构、部署态的应用程序包结构。
在鸿蒙应用开发中还有另一种模型,叫FA模型。基本不需要关注,目前官方主推Stage模型。
2、Module
在开发态,一个App可以对应多个Module(模块),Module是最基本的功能单元。每一个Module都可以独立编译和运行。
3、Ability、Library
而Module又有两种类型:
- Ability 页面或者服务类型的Module。
- Library 库类型的Module。
4、HAR、HSP
而Library库类型的Module又分为两种类型:
- HAR,静态库。
- HSP,动态库。
目前OpenHarmony三方库中心仓只支持HAR,如果想引用HSP动态包,只能本地路径引用。
5、HAP
HAP是鸿蒙应用开发最具特色的地方。HAP是部署态的粒度存在。它与开发态的Module是一一对应的。
一个鸿蒙App可以按功能、业务分为多个HAP,这些HAP中有且仅有一个Entry主包,和若干个Feature副包。在打包分发给用户时候,可以按需组合分发。比如主包+副包1分发给设备类型A,主包+副包2分发给设备类型B。
6、UIAbility
UIAbility是对应最近任务列表中的一个任务(压入后台挂起后的入口)。
一个App可以有至少一个UIAbility。取决于UIAbility使用哪种模式。
其有三种模式,分别为:
- singleton(单实例模式)
- multiton(多实例模式)
- specified(指定实例模式)