鸿蒙OS 在模块中添加Ability
Ability 是应用所具备的能力的抽象,一个 Module 可以包含一个或多个 Ability。Ability 分为两种类型:FA(Feature Ability)和 PA(Particle Ability),DevEco Studio 支持创建的 Ability 模板和应用场景如下表所示。
Ability类型 | Ability模板 | 使用场景 |
---|---|---|
Particle Ability | Empty Data Ability | Data Ability 有助于应用管理其自身和其他应用所存储数据的访问,并提供与其他应用共享数据的方法。Data 既可用于同设备不同应用的数据共享,也支持跨设备之间不同应用的数据共享。 |
Empty Service Ability | Service Ability 可在后台长时间运行而不提供用户交互界面。Service 可由其他应用或 Ability 启动,即使用户切换到其他应用,Service 仍将在后台继续运行。 | |
Feature Ability | Empty Feature Ability(JS) | 用 JS 和 Java 编写带 UI 界面的空模板。 |
Empty Feature Ability(Java) | 用 Java 和 xml 编写带 UI 界面的空模板。 | |
List Feature Ability(JS) | 用 JS 和 Java 编写带 UI 界面的目录列表模板。 | |
Tab Feature Ability(JS) | 用 JS 和 Java 编写带 UI 界面的表单模板。 |
创建Particle Ability
- 选中对应的模块,点击鼠标右键,选择 New > Ability ,然后选择 Empty Data Ability 或者 Empty Service Ability。
- 根据选择的 Ability 模板,设置 Ability 的基本信息。
- Empty Data Ability
基本信息设置:
- Data Name:Data Ability类名称。
- Visible:表示该Ability是否可以被其它应用所调用,勾选上则表示允许被调用。
- Package name:新增Ability对应的包名称。
- Empty Service Ability
基本信息设置:
- Service Name:Service Ability 类名称。
- Visible:表示该 Ability 是否可以被其它应用所调用,勾选上则表示允许被调用。
- Package name:新增 Ability 对应的包名称。
- Enable background mode
:指定用于满足特定类型的后台服务,
可以将多个后台服务类型分配给特定服务。
各服务与 config.json 文件的映射关系如下表所示。
Background modes | 对应config.json字段名称 | 描述 |
---|---|---|
Data upload/download, backup/restore | data-transfer | 通过网络/对端设备进行数据下载,备份分享,传输等业务 |
Audio playback | audio-playback | 音频输出业务 |
Audio recording | audio-recording | 音频输入业务 |
Picture-in-picture | picture-in-picture | 画中画,小窗口播放视频业务 |
Voice/video call over IP | voip | 音视频电话、VOIP业务 |
Location update | location | 定位,导航业务 |
Bluetooth communication | bluetooth-interaction | 蓝牙扫描、连接、传输业务(穿戴) |
Wifi communication | wifi-interaction | WLAN扫描、连接、传输业务(多屏,克隆) |
Screen recording, screenshot | screen-fetch | 录屏,截屏业务 |
- 点击 Finish 完成 Ability 的创建,可以在工程目录对应的模块中查看和编辑 Ability。
创建 Feature Ability
- 选中对应的模块,点击鼠标右键,选择 New > Ability ,然后选择对应的 Feature Ability 模板。
- 根据选择的 Ability 模板,设置 Feature Ability 的基本信息。
- Page Name:Feature Ability 类名称。
- Launcher Ability:表示该 Ability 在终端桌面上是否有启动图标,一个 HAP 可以有多个启动图标,来启动不同的 FA。
- Visible:表示该 Ability 是否可以被其它应用所调用,勾选上则表示允许被调用。
- JS Component Name:JS 组件名称,只有涉及 JS 开发语言时才需要设置。
- Package name:新增 Ability 对应的包名称。
- 点击 Finish 完成 Ability 的创建,可以在工程目录对应的模块中查看和编辑Ability。