1e41f4b71Sopenharmony_ci# UIAbility Overview
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciUIAbility is a type of application component that provides the UI for user interactions.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciThe following design philosophy is behind UIAbility:
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci1. Native support for cross-device migration and multi-device collaboration at the application component level
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci2. Support for multiple device types and window modes
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci 
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciUIAbility is the basic unit of scheduling in OpenHarmony and provides a window for applications to draw the UI. An application can contain one or more UIAbility components. For example, for a payment application, you can use separate UIAbility components to carry the entry and payment functionalities.
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciEach UIAbility component instance is displayed as a mission in the system application Recents.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ciYou can develop a single UIAbility or multiple UIAbilities for your application based on service requirements.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci- If you want your application to be displayed as one mission in Recents, use one UIAbility and multiple pages.
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci- If you want your application to be displayed as multiple missions in Recents or multiple windows to be opened simultaneously, use multiple UIAbilities.
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci## Declaration Configuration
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ciTo enable an application to properly use a UIAbility component, declare the UIAbility name, entry, and label under [abilities](../quick-start/module-configuration-file.md#abilities) in the [module.json5 file](../quick-start/module-configuration-file.md).
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci```json
33e41f4b71Sopenharmony_ci{
34e41f4b71Sopenharmony_ci  "module": {
35e41f4b71Sopenharmony_ci    // ...
36e41f4b71Sopenharmony_ci    "abilities": [
37e41f4b71Sopenharmony_ci      {
38e41f4b71Sopenharmony_ci        "name": "EntryAbility", // Name of the UIAbility component.
39e41f4b71Sopenharmony_ci        "srcEntry": "./ets/entryability/EntryAbility.ets", // Code path of the UIAbility component.
40e41f4b71Sopenharmony_ci        "description": "$string:EntryAbility_desc", // Description of the UIAbility component.
41e41f4b71Sopenharmony_ci        "icon": "$media:icon", // Icon of the UIAbility component.
42e41f4b71Sopenharmony_ci        "label": "$string:EntryAbility_label", // Label of the UIAbility component.
43e41f4b71Sopenharmony_ci        "startWindowIcon": "$media:icon", // Index of the icon resource file.
44e41f4b71Sopenharmony_ci        "startWindowBackground": "$color:start_window_background", // Index of the background color resource file.
45e41f4b71Sopenharmony_ci        // ...
46e41f4b71Sopenharmony_ci      }
47e41f4b71Sopenharmony_ci    ]
48e41f4b71Sopenharmony_ci  }
49e41f4b71Sopenharmony_ci}
50e41f4b71Sopenharmony_ci```
51