开发环境
IDE: DevEco Studio 3.0 Release(Build Version: 3.0.0.993)
SDK:Api Version8 和 9
Ability 模型
Ability 分为 FA 和 Stage 两种模型,在 API 8 及其更早版本的应用程序只能使用 FA 模型进行开发,而从 API 9 开始,Ability 框架引入了 Stage 模型作为第二种应用框架形态。FA 与 Stage 这两种模型在工程目录结构,配置文件以及在应用上下文 context 能力的运用上有较大区别。
工程结构
FA 模型目录结构
└── entry
└── src
└── main
├── ets
| └── MainAbility //应用/服务的入口
| ├── pages //MainAbility包含的页面
| | └── index.ets //pages列表中的第一个页面,即应用的首页入口
| └── app.ets //承载Ability生命周期
├── resources //用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等
| └── base
| ├── element //包括字符串、整型数、颜色、样式等资源的json文件,每个资源均由json格式进行定义
| | └── string.json
| └── media //多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等
| └── icon.png
└── config.json
Stage 模型目录结构
├── AppScope
| ├── resources
| | └── base
| | ├── element //包括字符串、整型数、颜色、样式等资源的json文件,每个资源均由json格式进行定义
| | | └── string.json
| | └── media //多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等
| | └── app_icon.png
| └── app.json5 //应用的全局配置,同一应用的不同.hap文件必须使用相同的应用配置
└── entry //OpenHarmony工程模块,编译构建生成一个Hap包
└── src
└── main
├── ets //用于存放ets源码
| ├── Application //模块的入口
| | └── AbilityStage.ts
| ├── MainAbility //模块对应ability的入口
| | └── MainAbility.ts
| └── pages //模块包含的页面
| └── index.ets
├── resources
| └── base
| ├── element
| | └── string.json
| ├── media
| | └── icon.png
| └── profile
| └── main_pages.json
└── module.json5
配置文件
FA 模型(config.json)
config.json 由 app、deviceConfig 和 module 三个部分组成,缺一不可。配置文件的内部结构说明如下表。
表配置文件的内部结构说明
module 对象的内部结构中 abilities 对象的内部结构说明
表 1 metaData 对象的内部结