应用模型解读 和 Stage模型开发概述
- 应用模型构成要素包括:应用组件、应用进程模型、应用线程模型、应用任务管理模型、应用配置文件
- 鸿蒙包括FA和Stage两种应用模型,Stage是之后的主推,我们只需要学Stage模型就可以
Stage模型概念图
Stage模型应用程序包结构
开发态时的Module与UIAbility组件关系示意图
- 一个应用包含一个或者多个Module
- Module是HarmonyOS应用/服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/服务配置文件,每一个Module都可以独立进行编译和运行
- Module分为“Ability”和“Library”两种类型
- “Ability”类型的Module对应于编译后的HAP(Harmony Ability Package);
- “Library”类型的Module对应于HAR(静态库)(Harmony Archive),或者HSP(动态库)(Harmony Shared Package)。
一个Module可以包含一个或多个UIAbility组件
应用程序包结构(Stage模型)
- 每个HarmonyOS应用可以包含多个.hap文件,一个应用中的.hap文件合在一起称为一个Bundle,而bundleName就是应用的唯一标识
- HAP是HarmonyOS应用安装的基本单位,包含了编译后的代码、资源、三方库及配置文件。HAP可分为Entry和Feature两种类型共享包概述
- Entry类型的HAP:是应用的主模块,在module.json5配置文件中的type标签配置为“entry”类型。在同一个应用中,同一设备类型只支持一个Entry类型的HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。
- Feature类型的HAP:是应用的动态特性模块,在module.json5配置文件中的type标签配置为“feature”类型。一个应用程序包可以包含一个或多个Feature类型的HAP,也可以不包含;Feature类型的HAP通常用于实现应用的特性功能,可以配置成按需下载安装,也可以配置成随Entry类型的HAP一起下载安装
- 打包后的HAP包结构包括ets、libs、resources等文件夹和resources.index、module.json、pack.info等文件
多HAP构建视图
IDE开发态视图
AppScope目录
- app.json5: 配置应用全局描述信
- resources目录:放置应用的图标资源和应用名称字符串资源。该文件夹名字不可更改 entry或者feature目录
- resources目录:放置该Module中所使用到的资源
- ets目录:开发者的业务逻辑
- module.json5:配置该Module的描述信息
编译打包后的视图
- 一个开发态的Module编译后生成一个部署态的HAP,Module和HAP一一对应。
- HAP中的module.json由开发视图中的app.json5和module.json5合成。
- 所有的HAP最终会编译到一个App Pack中(以.app为后缀的包文件),用于发布到应用市场