1.应用多Module设计机制
- 支持模块化开发,一个独立的Module包含代码、资源文件、第三方库、配置文件等,可以独立编译,实现特定的功能。
- 支持多设备的适配,每一个Module都会标注所支持的设备类型。
2.Module类型
- Ablility类型:实现应用的功能和特性,编译后生成.hap后缀文件。HAP包可以独立安装和运行,一个应用可以包含一个或者多个HAP包。
- entry类型的Module,应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。一个应用只能包含唯一一个entry类型的HAP。
- feature类型的Module,应用的动态特性模块,作为应用能力的扩展。可以根据用户的需求和设备类型进行选择性安装。一个应用可以包含一个或者多个feature类型的HAP,也可不包含。
- Library类型:用于实现代码和资源的共享。可以被其他Module多次引用。
- Static Library:静态共享库。编译后生成.har后缀文件,即静态共享包(HAR)
- Shared Library:动态共享库。编译后生成.hsp后缀文件,即动态共享包(HSP)
3. Stage模型包结构
- 配置文件:
- 应用级别:- AppScope > app.json5:用于声明应用的全局配置信息,比如应用Bundle名称、应用名称、应用图标、应用版本号等。
- Module级别:- Module_name > src > main > module.json5,用于声明Module基本信息、支持的设备类型、所含的组件信息、运行所需申请的权限等。
- ArkTS源码:src > main > ets: 存放源码文件
- 资源文件:
- 应用级别:AppScope > resources
- Module级别:src > main > resources
- 其他配置文件:
- build-profile.json5:工程级或Module级的构建配置文件,包括应用签名、产品配置等。
- hvigorfile.ts:应用级或Module级的编译构建任务脚本。
- oh-package.json5:用于存放依赖库的信息,包括所依赖的三方库和共享包