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