API и терминология координатора действий

Чтобы понять API координатора действий, важно ознакомиться с терминами, используемыми API.

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

Примечание.

Эти уведомления предназначены для координации низкоприоритетных или ресурсоемких задач, которые могут быть отложены позже. Если имеется высокоприоритетная задача, которая должна произойти независимо от системных условий, она не должна полагаться на этот API.

Терминология для конкретных API

Ресурс

Ресурс является физическим компонентом или атрибутом системы, которая используется или влияет на действие. Простые примеры — это традиционные системные ресурсы, такие как ЦП, системный диск и GPU. Менее традиционные ресурсы включают такие вещи, как питание и простой пользователя.

Condition

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

Разработчики должны выбрать условия, которые следует использовать для отдельных ресурсов, поэтому они будут соответствовать потребностям рабочей нагрузки. Это позволяет API лучше координировать работу среди своих потребителей.

Отложенный

Отложенные задачи — это те задачи , которые не сразу влияют на взаимодействие с пользователем приложения, хотя отсутствие выполнения в течение длительного периода может по-прежнему повлиять на общую работу. Как правило, эти задачи не должны выполняться немедленно и могут отложить их выполнение до времени, когда система находится в желательном состоянии. Это время, когда задача выполняется, не влияет на работу пользователя или производительность системы. Такие задачи могут включать:

  • Повторное индексирование каталога мультимедиа
  • Обучение или обновление модели рекомендаций
  • Установка обновлений подключаемого модуля

Действие (Activity)

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

Полис

Политики определяют, какое идеальное время выполнения означает, описывая требуемые условия различных ресурсов, необходимых для выполнения или воздействия на действия разработчика. Политика формируется несколькими парами ресурсов и условий, определяющими отдельные условия ресурса.

Политика может указывать условия для таких ресурсов, как Power, Memory и ЦП, но также исключить такие ресурсы, как GPU, на основе их релевантности. Политика считается открытой при выполнении всех условий ресурсов и закрытии в противном случае. Политики не описывают, сколько ресурсов должно использоваться действием. API использует конфигурации политик для принятия решений о координации между потребителями API.

При настройке политики рекомендуется, чтобы разработчик начал с лучшего (хорошего) условия для каждого ресурса, чтобы API могли помочь им работать в лучшее время, когда выполнение, скорее всего, повлияет на производительность пользователя или производительность системы. Условия могут быть снижены (например, от хорошего до среднего) после этого, если действие не уведомляется о выполнении достаточно часто или достаточно долго для удовлетворения потребностей разработчика.

Отток подписок

Подписки — это механизм координации действий. Разработчики подписываются на политику с обратным вызовом, который ВЫЗЫВАЕТ API с уведомлениями о координации. Эти уведомления сообщают разработчику, когда они должны начать или возобновить или остановить или приостановить их действия. Уведомления основаны на условиях ресурсов политики подписки, настроенной во время подписки, и принятия решений по координации, принятых API.

Шаблон политики

Член перечисления ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Их можно использовать при создании политики для предварительной настройки с разумными условиями, предназначенными для удовлетворения общих потребностей большинства действий и минимизации влияния на пользователя.

Понижение уровня

Вы можете снизить уровень политики или ресурса, изменив ее с более более более менее ранних условий, чтобы сделать ее более удостоверяющей и повысить вероятность удовлетворения условий политики. Например, можно уменьшить хорошее состояние ЦП, изменив его на среднее состояние. Среднее условие имеет менее строгие требования и поэтому, скорее всего, будет выполнено. На уровне политики это повышает вероятность того, что политика будет открываться (все условия ресурсов удовлетворены) чаще и в течение более длительных периодов времени, учитывая, что это может быть время, когда существует большая вероятность причинения влияния пользователя или снижения производительности системы.

Доступные действия

API позволяет разработчику выполнять следующие действия:

  • Настройка политики.
  • Подписка / отмена подписки на уведомления для политик.

API обеспечивает гибкость настройки политик в соответствии с сценарием разработчика, начиная с пустой конфигурации политики или одной из конфигураций шаблонов, предназначенных для большинства приложений. В самом простом случае:

  • Выделите политику с помощью идентификатора политики шаблона в ACTIVITY_COORDINATOR_POLICY_TEMPLATE.

Для более пользовательского сценария разработчика

  • Выделите политику шаблона (потенциально пустую).
  • Задайте необходимые условия для соответствующих ресурсов.

Общие сведения об API координатора действий

Выбор правильной политики координатора действий

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