API и терминология координатора действий
Чтобы понять API координатора действий, важно ознакомиться с терминами, используемыми API.
API координатора действий координирует выполнение отложенных задач, называемых действиями в системе. Разработчики могут использовать API для получения уведомлений о том, когда начать или остановить действие на основе требуемого состояния системы. Это состояние определяется политикой, которая описывает оптимальные условия системных ресурсов при выполнении действия. Разработчики подписываются на эти политики, чтобы уведомления отправлялись в предоставленный обратный вызов, который они используют для координации выполнения их действий.
Заметка
Эти уведомления предназначены для координации низкоприоритетных или ресурсоемких задач, которые могут быть отложены позже. Если имеется высокоприоритетная задача, которая должна произойти независимо от системных условий, она не должна полагаться на этот API.
Терминология для конкретных API
Ресурс
Ресурс является физическим компонентом или атрибутом системы, которая используется или влияет на действие. Простые примеры — это традиционные системные ресурсы, такие как ЦП, системный диск и GPU. Менее традиционные ресурсы включают такие вещи, как питание и простой пользователя.
Состояние
Условие — это качественное описание требуемого состояния ресурса как хорошего, среднегоили не задано. На базовом уровне хорошее состояние означает, что это хорошее время использовать ресурс. Определенная пара условий ресурсов может оцениваться с помощью различных измерений.
Разработчики должны выбрать условия, которые следует использовать для отдельных ресурсов, поэтому они будут соответствовать потребностям рабочей нагрузки. Это позволяет API лучше координировать работу среди своих потребителей.
Отложенный
отложенные задачи — это те задачи, которые не сразу влияют на взаимодействие с пользователем приложения, хотя отсутствие выполнения в течение длительного периода может по-прежнему влиять на общую работу. Как правило, эти задачи не должны выполняться немедленно и могут отложить их выполнение до времени, когда система находится в желательном состоянии. Это время, когда задача выполняется, не влияет на работу пользователя или производительность системы. Такие задачи могут включать:
- Повторное индексирование каталога мультимедиа
- Обучение или обновление модели рекомендаций
- Установка обновлений подключаемого модуля
Активность
действия — это отложенная единица работы, как определено разработчиком. Действия по сути используют системные ресурсы для выполнения, что может привести к влиянию на взаимодействие с пользователем. Разработчики должны понять, как их активность потребляет эти ресурсы, чтобы они могли соответствующим образом использовать API. Затем они могут отложить выполнение действий в более идеальное время с помощью API, а не немедленно выполнять такие работы в разы, что может значительно повлиять на взаимодействие с пользователем.
Политика
Политики определяют, какое идеальное время времени выполнения, описывая требуемые условия различных ресурсов, необходимых для выполнения или воздействия на действия разработчика. Политика формируется несколькими парами ресурсов и условий, определяющими отдельные условия ресурсов.
Политика может указывать условия для таких ресурсов, как Power, Memory и ЦП, но также исключить такие ресурсы, как GPU, на основе их релевантности. Политика считается открытой, если выполнены все условия ресурса и закрыты в противном случае. Политики не описывают, сколько ресурсов должно использоваться действием. API использует конфигурации политик для принятия решений о координации между потребителями API.
При настройке политики рекомендуется, чтобы разработчик начал с лучшего условия (хорошие) для каждого ресурса, чтобы API могли помочь им работать в лучшее время, когда выполнение, скорее всего, повлияет на производительность пользователя или производительности системы. Условия могут быть снижены (например, от хороших до средних) после этого, если действие уведомляется о том, что действие будет достаточно часто или достаточно долго для удовлетворения потребностей разработчика.
Подписка
Подписки — это механизм координации действий. Разработчики подписываются на политику с обратным вызовом, который ВЫЗЫВАЕТ API с уведомлениями о координации. Эти уведомления сообщают разработчику, когда они должны начать или возобновить или остановить или приостановить их действия. Уведомления основаны на условиях ресурсов политики подписки, настроенной во время подписки, и принятия решений по координации, принятых API.
Шаблон политики
Член перечисления ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Их можно использовать при создании политики для предварительной настройки с разумными условиями, предназначенными для удовлетворения общих потребностей большинства действий и минимизации влияния на пользователя.
Уклон
Вы можете понижение уровня политики или ресурса, изменив его с более более менее меньшими условиями, чтобы сделать его более доступным и повысить вероятность удовлетворения условий политики. Например, можно изменить хорошее условие для ЦП, изменив его на условие среднего. Среднее условие имеет менее строгие требования и поэтому, скорее всего, будет выполнено. На уровне политики это повышает вероятность того, что политика будет открываться (все условия ресурсов удовлетворены) чаще и в течение более длительных периодов времени, учитывая, что это может быть время, когда существует большая вероятность причинения влияния пользователя или снижения производительности системы.
Доступные действия
API позволяет разработчику выполнять следующие действия:
- Настройка политики.
- Подписка / отмена подписки на уведомления для политик.
API обеспечивает гибкость настройки политик в соответствии с сценарием разработчика, начиная с пустой конфигурации политики или одной из конфигураций шаблонов, предназначенных для большинства приложений. В самом простом случае:
- Выделите политику с помощью идентификатора политики шаблона в ACTIVITY_COORDINATOR_POLICY_TEMPLATE.
Для более пользовательского сценария разработчика
- Выделите политику шаблона (потенциально пустую).
- Задайте необходимые условия для соответствующих ресурсов.
Связанные разделы
Обзор API координатора действий
выбор правильной политики координатора действий
Пример проекта координатора действий