鸿蒙OS开发文档 鸿蒙OS 在模块中添加Ability

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 2

Ability 是应用所具备的能力的抽象,一个 Module 可以包含一个或多个 Ability。Ability 分为两种类型:FA(Feature Ability)和 PA(Particle Ability),DevEco Studio 支持创建的 Ability 模板和应用场景如下表所示。

Ability类型Ability模板使用场景
Particle AbilityEmpty Data AbilityData Ability 有助于应用管理其自身和其他应用所存储数据的访问,并提供与其他应用共享数据的方法。Data 既可用于同设备不同应用的数据共享,也支持跨设备之间不同应用的数据共享。
Empty Service AbilityService Ability 可在后台长时间运行而不提供用户交互界面。Service 可由其他应用或 Ability 启动,即使用户切换到其他应用,Service 仍将在后台继续运行。
Feature AbilityEmpty 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。

  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/restoredata-transfer通过网络/对端设备进行数据下载,备份分享,传输等业务
Audio playbackaudio-playback音频输出业务
Audio recordingaudio-recording音频输入业务
Picture-in-picturepicture-in-picture画中画,小窗口播放视频业务
Voice/video call over IPvoip音视频电话、VOIP业务
Location updatelocation定位,导航业务
Bluetooth communicationbluetooth-interaction蓝牙扫描、连接、传输业务(穿戴)
Wifi communicationwifi-interactionWLAN扫描、连接、传输业务(多屏,克隆)
Screen recording, screenshotscreen-fetch录屏,截屏业务
  1. 点击 Finish 完成 Ability 的创建,可以在工程目录对应的模块中查看和编辑 Ability。

创建 Feature Ability

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

  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。