添加Ability
=========

Ability是应用/元服务所具备的能力的抽象，应用的一个Module可以包含一个或多个Ability，元服务仅包含一个Ability。应用/元服务先后提供了两种应用模型：

*   FA（Feature Ability）模型： API 7开始支持的模型，已经不再主推。
*   Stage模型：HarmonyOS 3.1 Developer Preview版本开始新增的模型，是目前主推且会长期演进的模型。在该模型中，由于提供了AbilityStage、WindowStage等类作为应用组件和Windows窗口的“舞台”，因此称这种应用模型为Stage模型。
    
    Stage模型包含两种Ability组件类型：
    
    *   UIAbility组件：包含UI界面，提供展示UI的能力，主要用于和用户交互。详细介绍请参见[UIAbility组件概述](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uiability-overview)。
    *   ExtensionAbility组件：提供特定场景的扩展能力，满足更多的使用场景。详细介绍请参见[ExtensionAbility概述](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/extensionability-overview)。元服务暂不支持使用ExtensionAbility组件。

#### Stage模型添加Ability

#### \[h2\]在模块中添加UIAbility

1.  选中对应的模块，单击鼠标右键，选择**New > Ability**。
2.  设置Ability名称，选择是否在设备主屏幕上显示该功能的启动图标，单击**Finish**完成Ability创建。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/df/v3/RRgmPru-TtynBoHk48myMw/zh-cn_image_0000002624994575.png?HW-CC-KV=V1&HW-CC-Date=20260612T073823Z&HW-CC-Expire=86400&HW-CC-Sign=19E0DD0739F6735035910FE54D511C8180DA3C392CDB83483998EB2BAAFA4D46)
    

#### \[h2\]在模块中添加Extension Ability

从DevEco Studio 6.1.0 Beta2版本开始，支持在API 23及以上Car设备工程的模块中添加RemoteNotificationAbility。

1.  在工程中选中对应的模块，单击鼠标右键，选择**New > Extension Ability**，选择不同的场景类型 。当前仅Application工程支持创建Extension Ability。
    
    *   若创建的模块类型为HAP，支持创建如下Extension Ability：
        *   **EmbeddedUIExtensionAbility**：用于提供[跨进程界面嵌入](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/embeddeduiextensionability)的能力。
        *   **Backup****Ability**：用于提供[备份及恢复应用数据](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-backup-overview)的能力。
        *   **WorkScheduler**：用于提供[延迟任务](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/work-scheduler)的相关能力。
        *   **RemoteNotificationAbility**：用于提供获取场景化消息数据和生命周期销毁的回调的通知能力，当前仅支持在Phone、Tablet、2in1、Car设备中使用。
        *   **Driver**：用于提供[驱动相关扩展框架](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/driverextensionability)。仅在当前工程的设备类型只含有2in1设备时，支持创建该类型。
    *   若创建的模块类型为HAR或HSP，支持创建以下两种Extension Ability：
        *   **EmbeddedUIExtensionAbility**：用于提供[跨进程界面嵌入](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/embeddeduiextensionability)的能力。
        *   **WorkScheduler**：用于提供[延迟任务](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/work-scheduler)的相关能力。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6c/v3/PCxBpA8-RqG4LzLvxbJx4A/zh-cn_image_0000002625074717.png?HW-CC-KV=V1&HW-CC-Date=20260612T073823Z&HW-CC-Expire=86400&HW-CC-Sign=FA246F8D9FC4E252BC5390B5761115EFA866614E75C6D9F19E51C4DCB1E0DA2C)
    
2.  设置Ability名称，单击Finish完成Extension Ability创建。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d0/v3/V2cWZSa3R66795VjfKuBSA/zh-cn_image_0000002594475216.png?HW-CC-KV=V1&HW-CC-Date=20260612T073823Z&HW-CC-Expire=86400&HW-CC-Sign=860A836939F795ACD2A37AFFECC3D1CEE098616432595613741F4C7679379E5D)
    

#### FA模型添加Ability

#### \[h2\]创建Particle Ability

1.  选中对应的模块，单击鼠标右键，选择**New > Ability** ，然后选择对应的Data Ability/Service Ability模板。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/59/v3/hWly432cQierHIHFp_cfJA/zh-cn_image_0000002594475218.png?HW-CC-KV=V1&HW-CC-Date=20260612T073823Z&HW-CC-Expire=86400&HW-CC-Sign=32395FCDDF52C1FA37AA07D0DDD86C7E93C7C39B16970E55C73E78E728060671)
    
2.  根据选择的Ability模板，设置Ability的基本信息。
    
    *   **Ability name**：Ability类名称，由大小写字母、数字和下划线组成。
    *   **Language**：该Ability使用的开发语言。
    
3.  单击**Finish**完成Ability的创建，可以在工程目录对应的模块中查看和编辑Ability。

#### \[h2\]创建Feature Ability

1.  选中对应的模块，单击鼠标右键，选择**New > Ability** ，然后选择对应的Page Ability模板。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e0/v3/PR1rlNcIQF6ADRqejsWXNw/zh-cn_image_0000002594635138.png?HW-CC-KV=V1&HW-CC-Date=20260612T073823Z&HW-CC-Expire=86400&HW-CC-Sign=9DF1CE02E636E9A7724ECF5E847F31ED5C040EFD30BB2FE1A6B6177739188D3F)
    
2.  根据选择的Ability模板，设置Ability的基本信息。
    
    *   **Ability name**：Ability类名称，由大小写字母、数字和下划线组成。
    *   **Launcher ability**：表示该Ability在终端桌面上是否有启动图标，一个HAP可以有多个启动图标，来启动不同的FA。
    *   **Language**：该Ability使用的开发语言。
    
3.  单击**Finish**完成Ability的创建，可以在工程目录对应的模块中查看和编辑Ability。