1e41f4b71Sopenharmony_ci# UIAbility组件概述
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciUIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciUIAbility的设计理念:
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci1. 原生支持应用组件级的跨端迁移和多端协同。
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci2. 支持多设备和多窗口形态。
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciUIAbility划分原则与建议:
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciUIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。例如,在支付应用中,可以将入口功能和收付款功能分别配置为独立的UIAbility。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci对于开发者而言,可以根据具体场景选择单个还是多个UIAbility,划分建议如下:
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci- 如果开发者希望在任务视图中看到一个任务,建议使用“一个UIAbility+多个页面”的方式,可以避免不必要的资源加载。
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci- 如果开发者希望在任务视图中看到多个任务,或者需要同时开启多个窗口,建议使用多个UIAbility实现不同的功能。
26e41f4b71Sopenharmony_ci  
27e41f4b71Sopenharmony_ci   例如,即时通讯类应用中的消息列表与音视频通话采用不同的UIAbility进行开发,既可以方便地切换任务窗口,又可以实现应用的两个任务窗口在一个屏幕上分屏显示。
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci> **说明**:
30e41f4b71Sopenharmony_ci>
31e41f4b71Sopenharmony_ci>任务视图用于快速查看和管理当前设备上运行的所有任务或应用。
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci## 声明配置
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci为使应用能够正常使用UIAbility,需要在[module.json5配置文件](../quick-start/module-configuration-file.md)的[abilities标签](../quick-start/module-configuration-file.md#abilities标签)中声明UIAbility的名称、入口、标签等相关信息。
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci```json
39e41f4b71Sopenharmony_ci{
40e41f4b71Sopenharmony_ci  "module": {
41e41f4b71Sopenharmony_ci    // ...
42e41f4b71Sopenharmony_ci    "abilities": [
43e41f4b71Sopenharmony_ci      {
44e41f4b71Sopenharmony_ci        "name": "EntryAbility", // UIAbility组件的名称
45e41f4b71Sopenharmony_ci        "srcEntry": "./ets/entryability/EntryAbility.ets", // UIAbility组件的代码路径
46e41f4b71Sopenharmony_ci        "description": "$string:EntryAbility_desc", // UIAbility组件的描述信息
47e41f4b71Sopenharmony_ci        "icon": "$media:icon", // UIAbility组件的图标
48e41f4b71Sopenharmony_ci        "label": "$string:EntryAbility_label", // UIAbility组件的标签
49e41f4b71Sopenharmony_ci        "startWindowIcon": "$media:icon", // UIAbility组件启动页面图标资源文件的索引
50e41f4b71Sopenharmony_ci        "startWindowBackground": "$color:start_window_background", // UIAbility组件启动页面背景颜色资源文件的索引
51e41f4b71Sopenharmony_ci        // ...
52e41f4b71Sopenharmony_ci      }
53e41f4b71Sopenharmony_ci    ]
54e41f4b71Sopenharmony_ci  }
55e41f4b71Sopenharmony_ci}
56e41f4b71Sopenharmony_ci```
57