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

OSCHINA-MIRROR/openharmony-ability_ability_lite

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

Модуль метакомпонентов

Обзор

Модуль метакомпонентов — это набор разработчика OpenHarmony для создания приложений на платформе HarmonyOS. Модуль метакомпонентов состоит из следующих модулей:

Рисунок 1 Структура модуля метакомпонентов

image

  • AbilityKit — это пакет разработчика, предоставляемый фреймворком Ability. На основе этого пакета разработчики могут создавать приложения с использованием компонента Ability. Приложения, созданные с помощью компонента Ability, имеют два типа: Ability на JavaScript (JS Ability) и Ability на C/C++ (Native Ability). Фреймворк JS для разработки приложений — это фреймворк, используемый разработчиками для создания JS Ability, который представляет собой набор удобных для разработчиков компонентов UI на JavaScript.

  • Ability — это минимальная единица управления системой, представляющая собой компонент, способный выполнять отдельную функцию. Одно приложение может содержать один или несколько Ability. Ability имеет два типа: Ability типа Page и Ability типа Service.

    • Ability типа Page: имеет интерфейс пользователя и обеспечивает взаимодействие человека с машиной.
    • Ability типа Service: не имеет интерфейса пользователя и обеспечивает механизмы выполнения фоновых задач.
  • AbilitySlice — это сумма одного страницы и её логики управления. Это специальный компонент для Ability типа Page. Один Ability типа Page может содержать несколько AbilitySlice, при этом бизнес-возможности этих страниц должны быть тесно связаны. Отношение между Ability типа Page и AbilitySlice показано на следующем рисунке:

Рисунок 2 Отношение между Ability и AbilitySlice

gif

  • Цикл жизни — это общее название состояний, в которых находится Ability после запуска, активации, скрытия и завершения. Цикл жизней Ability представлен на следующем рисунке:

Рисунок 3 Цикл жизней Ability

png

  • Анализ состояний цикла жизней Ability:

    • UNINITIALIZED — состояние до инициализации, временное состояние. После создания Ability он переходит из состояния UNINITIALIZED в состояние INITIAL;

    • INITIAL — начальное состояние, также указывает на состояние остановки, когда Ability не выполняется. После запуска Ability он переходит из состояния INITIAL в INACTIVE;

    • INACTIVE — неактивное состояние, когда текущий окно уже отображается, но не имеет фокуса.

    • ACTIVE — активное состояние, когда текущий окно отображается и получает фокус. Перед переходом в фоновое состояние Ability переходит из ACTIVE в INACTIVE;

    • BACKGROUND — фоновое состояние, когда Ability находится в фоновом режиме. После удаления Ability из системы он переходит из BACKGROUND в INITIAL, либо если Ability снова активируется, то он переходит из BACKGROUND в ACTIVE.

  • AbilityLoader регистрирует и загружает модули Ability, разработанные разработчиками. Разработанные Ability должны быть зарегистрированы через метод регистрации AbilityLoader перед тем как они будут запущены.

  • AbilityManager управляет IPC-сообщениями между AbilityKit и службой управления Ability.

  • EventHandler — это модуль, предоставленный AbilityKit для реализации межпоточной связи внутри Ability.

  • Управление процессами Ability — это система службы, которая координирует отношения между различными Ability и управляет их жизненным циклом. Внутри этой службы есть модуль запуска сервиса, который отвечает за запуск, регистрацию и другие операции службы управления Ability. Модуль управления интерфейсами службы отвечает за управление внешними возможностями службы управления Ability. Модуль управления процессами отвечает за запуск и завершение работы процессов Ability, а также за поддержание информации о процессах. Модуль управления стеком Ability отвечает за поддержание последовательности переходов между различными Ability. Модуль распределения жизненного цикла отвечает за управление состоянием Ability в соответствии с текущими действиями системы. Модуль управления соединениями отвечает за управление соединениями для Ability типа Service.

  • AppSpawn — это система службы, которая отвечает за создание процессов, в которых находятся приложения Ability. Эта служба имеет высокие права доступа, она устанавливает соответствующие права для приложений Ability и предварительно загружает некоторые универсальные модули, чтобы ускорить запуск приложений.

Структура каталога

/foundation/ability/ability_lite
     ├── frameworks
     │      ├── ability_lite               # Ключевые реализации AbilityKit
     │      ├── abilitymgr_lite            # Реализация клиента для управления связью между AbilityKit и службой управления Ability
     │      └── want_lite                  # Реализация носителя информации для взаимодействия между Ability
     ├── interfaces
     │      ├── kits
     │      │     ├── ability_lite        # Интерфейсы, предоставляемые AbilityKit для разработчиков
     │      │     └── want_lite           # Внешние интерфейсы носителя информации для взаимодействия между Ability
     │      └── inner_api
     │             └── abilitymgr_lite     # Интерфейсы, предоставляемые службой управления Ability другим подсистемам
     └── services
             └── abilitymgr_lite            # Реализация службы управления Ability

Инструкция по использованию

  • Управление процессами Ability осуществляется службой AbilityMs, которая работает в процессе foundation;
  • AbilityMs регистрируется в sa_manager, который работает в процессе foundation, sa_manager создаёт среду выполнения потока для AbilityMs. Для конкретной реализации создания службы AbilityMs и использования этой службы можно обратиться к подсистеме системных служб;
  • После запуска системы AbilityMs запускается вместе с системой;- После установки пакета можно запустить демонстрационное приложение с помощью следующей команды (в качестве примера используется его spark taurus, aa-инструмент находится в out/hispark_taurus/ipcamera_hispark_taurus/dev_tools/bin):
./bin/aa start -p com.xxxxxx.hiability -n MainAbility

Связанные репозитории

Подсистема метакомпонентов

aafwk_aafwk_lite

appexecfwk_appexecfwk_lite

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

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

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