1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-ability_ability_runtime

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.03.2025 14:49 d5cfc11

Метакомпонентная система

Введение

Метакомпонентная система обеспечивает единое управление запуском и жизненным циклом компонентов Ability. Приложение может поддерживать несколько Ability, которые имеют возможность вызова как между процессами одного приложения, так и между различными приложениями. Управление сервисом Ability отвечает за единую координацию и управление всеми Ability в приложении, а также за управление изменениями жизненного цикла Ability.

image

Схема архитектуры метакомпонентной системы:

  • Kit Ability предоставляет базовое окружение для выполнения Ability. Ability является минимальной единицей управления системой, представляющей собой компонент, способный выполнять независимую функцию. Одно приложение может содержать один или несколько Ability.- Управление Ability (AbilityManagerService): служба системы, используемая для координации взаимоотношений между 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;

Оглавление```markdown

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

ability_base

ability_lite

ability_runtimedmsfwк

dmsfwk_lite

form_fwk

idl_tool

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openharmony-ability_ability_runtime.git
git@api.gitlife.ru:oschina-mirror/openharmony-ability_ability_runtime.git
oschina-mirror
openharmony-ability_ability_runtime
openharmony-ability_ability_runtime
master