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 的基本信息。
基本信息设置:
- Data Name:Data Ability类名称。
- Visible:表示该Ability是否可以被其它应用所调用,勾选上则表示允许被调用。
- Package name:新增Ability对应的包名称。
基本信息设置:
- Service Name:Service Ability 类名称。
- Visible:表示该 Ability 是否可以被其它应用所调用,勾选上则表示允许被调用。
- Package name:新增 Ability 对应的包名称。
:指定用于满足特定类型的后台服务,
可以将多个后台服务类型分配给特定服务。
各服务与 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。
请发表评论