-

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

  1. 选中对应的模块,点击鼠标右键,选择 New > Ability ,然后选择 Empty Data Ability 或者 Empty Service Ability。

img

  1. 根据选择的 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 录屏,截屏业务

  1. 点击 Finish 完成 Ability 的创建,可以在工程目录对应的模块中查看和编辑 Ability。

创建 Feature Ability

  1. 选中对应的模块,点击鼠标右键,选择 New > Ability ,然后选择对应的 Feature Ability 模板。

img

  1. 根据选择的 Ability 模板,设置 Feature Ability 的基本信息。

  • Page Name:Feature Ability 类名称。
  • Launcher Ability:表示该 Ability 在终端桌面上是否有启动图标,一个 HAP 可以有多个启动图标,来启动不同的 FA。
  • Visible:表示该 Ability 是否可以被其它应用所调用,勾选上则表示允许被调用。
  • JS Component Name:JS 组件名称,只有涉及 JS 开发语言时才需要设置。
  • Package name:新增 Ability 对应的包名称。

  1. 点击 Finish 完成 Ability 的创建,可以在工程目录对应的模块中查看和编辑Ability。