Метакомпонентная система обеспечивает единое управление запуском и жизненным циклом компонентов Ability. Приложение может поддерживать несколько Ability, которые имеют возможность вызова как между процессами одного приложения, так и между различными приложениями. Управление сервисом Ability отвечает за единую координацию и управление всеми Ability в приложении, а также за управление изменениями жизненного цикла Ability.
Схема архитектуры метакомпонентной системы:
Модуль управления соединением (AbilityConnectManager) — модуль управления соединением службы управления Ability для типов Service.
Модуль управления данными (DataAbilityManager) — модуль управления данными службы управления Ability для типов Data.
Модуль расписания App (AppScheduler) — предоставляет возможности для управления расписанием пользовательских приложений.
Модуль расписания Ability (AbilityScheduler) — предоставляет возможности для управления расписанием Ability.
Модуль управления событиями жизненного цикла (LifecycleDeal) — модуль управления событиями жизненного цикла Ability службы управления Ability.- Архитектурная модель фреймворка Ability имеет два типа:
Первый тип — это модель FA. Приложения с API 8 и ранее могут использовать только модель FA для разработки. Модель FA делит Ability на две категории: FA (Feature Ability) и PA (Particle Ability). FA поддерживает Page Ability, а PA поддерживает Service Ability, Data Ability и FormAbility.
Второй тип — это модель Stage. Начиная с API 9, фреймворк Ability вводит модель Stage как второй тип архитектуры приложений. Модель Stage делит Ability на две основные категории: Ability и ExtensionAbility. Категория ExtensionAbility расширяется до различных типов ExtensionAbility, таких как ServiceExtensionAbility, FormExtensionAbility, DataShareExtensionAbility и других, чтобы удовлетворять различные сценарии использования. Модель Stage была создана для удобства разработчиков в создании сложных приложений в распределённой среде. Ниже приведена таблица, показывающая различия между двумя моделями в дизайне:
Сравнение | Модель FA | Модель Stage |
---|---|---|
Способ разработки | Предоставляет API в стиле Web, UI-разработка совпадает с моделью Stage. | Предоставляет объектно-ориентированный способ разработки, UI-разработка совпадает с моделью FA. |
Экземпляр движка | Внутри каждого процесса каждый Ability имеет свой экземпляр JS VM движка. | Внутри каждого процесса несколько экземпляров Ability используют один экземпляр JS VM движка. |
Общий доступ к объектам внутри процесса | Недоступно. | Доступно. |
Описание пакета | Использует config.json для описания HAP пакета и компонентов, компоненты должны использовать фиксированное имя файла. | Использует module.json для описания HAP пакета и компонентов, можно указывать имя входного файла. |
Компоненты | Предоставляет PageAbility (отображение страницы), ServiceAbility (сервис), DataAbility (обмен данными), FormAbility (карточка). | Предоставляет Ability (отображение страницы), Extension (расширение сервиса на основе сценария). |
Различие в типах Ability;
Различие в жизненном цикле Ability;
foundation/ability # Подсистема метакомпонентов ├── ability_runtime # Метакомпонент runtime │ ├── frameworks │ │ ├── js │ │ │ └── napi # Реализация NAPI для ability_runtime │ │ └── native # Ядро реализации ability_runtime │ ├── interfaces │ │ ├── inner_api # Внутренние интерфейсы системы для ability_runtime │ │ └── kits │ │ └── native # Внешние интерфейсы для ability_runtime │ ├── services │ │ ├── abilitymgr # Код фреймворка управления Ability │ │ ├── appmgr # Код фреймворка управления приложениями │ │ ├── common # Директория общих компонентов сервисов │ │ ├── dataobsmgr # Код фреймворка управления наблюдателем данных │ │ └── uripermmgr # Код фреймворка управления разрешениями URI │ ├── test # Директория тестов │ └── tools # Директория кода командной строки aa │ ├── ability_base # Базовый метакомпонент │ ├── ability_lite # Лёгкий метакомпонент │ ├── dmsfwk # Метакомпонент управления распределёнными компонентами │ ├── dmsfwk_lite # Лёгкий метакомпонент управления распределёнными компонентами │ ├── form_fwk # Метакомпонент времени выполнения карточек │ ├── idl_tool # Инструмент IDL
Все изменения были сделаны согласно правилам перевода, чтобы обеспечить корректность и грамматическую целостность текста.## Указания по использованию
### Запуск Ability
Запуск нового Ability (в форме обратного вызова)
* Описание параметров startAbility
| Название | Чтение/запись | Тип | Обязательность | Описание |
| -------------- | ------------- | ----------------------------- | -------------- | -------------------------- |
| parameter | Чтение/запись | StartAbilityParameter | Да | Представляет запускаемый Ability |
| callback | Только чтение | AsyncCallback | Да | Указанная функция обратного вызова |
# Описание типа `StartAbilityParameter`
| Название | Чтение/Запись | Тип | Обязательность | Описание |
| ---------------------------- | ------------- | ------------- | ---------- | ------------------------------------------------------------------------------------------|
| want | Чтение/запись | want | Да | Представляет информацию о запускаемых способностях цели |
| abilityStartSetting | Только чтение | string | Нет | Указывает специальные настройки запуска, используемые в способностях запуска |
## Описание типа `want`| Название | Чтение/Запись | Тип | Обязательность | Описание |
| --------------------- | ------------- | ---------------------- | ---------- | --------------------------------------------------------------------------------------------|
| deviceId | Чтение/Запись | string | Нет | ID устройства |
| bundleName | Чтение/Запись | string | Нет | Имя пакета |
| abilityName | Чтение/Запись | string | Нет | Имя способности |
| uri | Чтение/Запись | string | Нет | Описание URI запроса |
| type | Чтение/Запись | string | Нет | Описание типа в want |
| flags | Чтение/Запись | число | Нет | Вариант флагов в want |
| action | Чтение/Запись | string | Нет | Описание действия в want |
| parameters | Чтение/Запись | {[key: string]: any} | Нет | Описание объекта WantParams в want |
| entities | Чтение/Запись | string | Нет | Описание сущностей в объекте |
| moduleName9+ | Чтение/Запись | string | Нет | Имя модуля (module), которому принадлежит способность |
Перевод:
| Название | Чтение/Запись | Тип | Обязательность | Описание |
| --------------------- | ------------- | ---------------------- | ---------- | --------------------------------------------------------------------------------------------|
| deviceId | чтение/запись | string | нет | ID устройства |
| bundleName | чтение/запись | string | нет | имя пакета |
| abilityName | чтение/запись | string | нет | имя способности |
| uri | чтение/запись | string | нет | описание URI запроса |
| type | чтение/запись | string | нет | описание типа в want |
| flags | чтение/запись | число | нет | вариант флагов в want |
| action | чтение/запись | string | нет | описание действия в want |
| parameters | чтение/запись | {[key: string]: any} | нет | описание объекта WantParams в want |
| entities | чтение/запись | string | нет | описание сущностей в объекте |
| moduleName9+ | чтение/запись | string | нет | имя модуля (module), которому принадлежит способность |### Возвращаемое значение
`void`
### Пример
Дополнительные руководства по разработке можно найти в [**примерной документации**](https://gitee.com/openharmony/docs/tree/master/en-us/application-dev/application-models/Readme-EN.md)
## **Команда aa**
### `aa help`
| Команда | Описание |
| ------- | ---------------------------------- |
| aa help | Отображает справочную информацию по команде aa |
### `aa start`
| Команда | Описание |
| ------------------------------------------------------------------------------------------------| ------------------------------------ |
| aa start [-d <устройство>] -a <имя_способности> -b <имя_пакета> [-D] | Запуск способности, ID устройства может отсутствовать |```
Пример:
aa start -d 12345 -a com.ohos.app.MainAbility -b com.ohos.app -D
aa dump
Команда | Описание |
---|---|
aa dump -a | Выводит информацию об Ability в стеке |
aa force-stop
Команда | Описание |
---|---|
aa force-stop [-p ] [-r <причина_завершения>] | Принудительно останавливает приложение, поддерживает передачу PID и причины завершения процесса |
Пример:
aa force-stop com.ohos.app
Модуль Ability
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )