활동 코디네이터 API 및 용어

활동 코디네이터 API를 이해하려면 API에서 사용하는 용어에 익숙해지는 것이 중요합니다.

활동 코디네이터 API는 시스템에서 활동이라고 하는 지연 가능한 작업의 실행을 조정합니다. 개발자는 API를 사용하여 원하는 시스템 상태에 따라 활동을 시작하거나 중지할 시기에 대한 알림을 받을 수 있습니다. 이 상태는 활동을 실행하는 동안 시스템 리소스의 최적 조건을 설명하는 정책에 의해 정의됩니다. 개발자는 이러한 정책을 구독하여 제공된 콜백으로 알림을 전송하며, 이 알림은 활동의 실행을 조정하는 데 사용합니다.

참고

이러한 알림은 나중에 지연될 수 있는 낮은 우선 순위 또는 리소스 집약적 작업을 조정하는 것입니다. 시스템 조건과 관계없이 수행해야 하는 우선 순위가 높은 작업이 있는 경우 이 API에 의존해서는 안 됩니다.

API 관련 용어

리소스

리소스는 활동의 영향을 받거나 사용되거나 영향을 받는 시스템의 물리적 구성 요소 또는 특성입니다. 간단한 예제는 CPU, 시스템 디스크 및 GPU와 같은 기존 시스템 리소스입니다. 덜 전통적인 리소스에는 전원 및 사용자 유휴와 같은 항목이 포함됩니다.

조건

조건은 양 호,중간 또는 설정되지 않은 리소스의 원하는 상태에 대한 질적 설명입니다. 기본 수준에서 좋은 조건은 리소스를 사용하기에 좋은 시기 임을 의미합니다. 지정된 리소스 조건 쌍은 다양한 차원을 사용하여 평가할 수 있습니다.

개발자는 워크로드의 요구 사항에 맞게 개별 리소스에 사용할 조건을 선택해야 합니다. 이렇게 하면 API가 소비자 간에 작업을 가장 잘 조정할 수 있습니다.

지연 가능

지연 가능한 작업은 애플리케이션의 사용자 환경에 즉시 영향을 주지 않지만 장기간 실행이 부족해도 전체 환경에 영향을 줄 수 있는 작업입니다. 일반적으로 이러한 작업은 즉시 실행할 필요가 없으며 시스템이 바람직한 상태인 시점까지 실행을 연기할 수 있습니다. 작업을 실행해도 사용자의 환경이나 시스템 성능을 방해하지 않는 경우가 있습니다. 이러한 작업에는 다음이 포함될 수 있습니다.

  • 미디어 카탈로그 다시 인덱싱
  • 권장 사항 모델 학습 또는 업데이트
  • 플러그 인 업데이트 설치

활동

활동은 개발자가 정의한 연기 가능한 작업 단위입니다. 활동은 기본적으로 시스템 리소스를 사용하여 실행하므로 사용자 환경에 영향을 미칠 수 있습니다. 개발자는 API를 적절하게 사용할 수 있도록 해당 활동이 이러한 리소스를 사용하는 방법을 이해해야 합니다. 그런 다음, 사용자 환경에 큰 영향을 미칠 수 있는 시간에 이러한 작업을 즉시 실행하는 대신 API를 사용하여 활동 실행을 보다 이상적인 시간으로 연기할 수 있습니다.

정책

정책은 개발자의 활동에 의해 실행되거나 영향을 받는 데 필요한 다양한 리소스의 원하는 조건을 설명하여 실행하기에 이상적인 시간을 정의합니다. 정책은 여러 쌍의 리소스 및 조건으로 구성되어 개별 리소스 조건을 정의합니다.

정책은 Power, Memory 및 CPU와 같은 리소스에 대한 조건을 지정할 수 있지만 관련성에 따라 GPU와 같은 리소스도 제외할 수 있습니다. 그렇지 않으면 모든 리소스 조건이 충족되고 닫히는 경우 정책이 열린 것으로 간주됩니다. 정책은 활동이 사용할 것으로 예상되는 지정된 리소스의 양을 설명하지 않습니다. API는 정책 구성을 사용하여 API 소비자 간에 조정 결정을 내립니다.

정책을 구성할 때 개발자는 각 리소스에 대해 최상의(양호한) 조건으로 시작하여 실행이 사용자의 환경 또는 시스템 성능에 영향을 줄 가능성이 가장 낮은 최상의 시기에 API를 실행하는 데 도움을 줄 수 있도록 하는 것이 좋습니다. 작업이 개발자의 요구 사항을 충족할 수 있을 만큼 자주 실행하거나 충분히 오래 실행하라는 알림을 받지 않으면 나중에 조건이 낮아질 수 있습니다(예: 호에서 중간으로).

구독

구독은 활동에 대한 조정 메커니즘입니다. 개발자는 API가 조정 알림으로 호출하는 콜백을 사용하여 정책을 구독합니다. 이러한 알림은 개발자가 활동을 시작/다시 시작하거나 중지/일시 중지해야 하는 경우를 알려줍니다. 알림은 구독 시 구성된 구독 정책의 리소스 조건 및 API에서 내린 조정 결정을 기반으로 합니다.

정책 템플릿

열거형 ACTIVITY_COORDINATOR_POLICY_TEMPLATE 멤버입니다. 대부분의 활동의 일반적인 요구 사항을 충족하고 사용자에게 미치는 영향을 최소화하도록 설계된 합리적인 조건으로 정책을 미리 구성하는 정책을 만들 때 사용할 수 있습니다.

다운그레이드

더 나은 조건에서 더 낮은 조건으로 변경하여 정책 또는 리소스를 다운그레이드 하여 더 관대하게 만들고 정책 조건이 충족될 가능성을 높일 수 있습니다. 예를 들어 CPU중간 조건으로 변경하여 CPU에 적합한 조건을 다운그레이드할 수 있습니다. 중간 조건에는 덜 제한적인 요구 사항이 있으므로 충족될 가능성이 높습니다. 정책 수준에서 정책 열기(모든 리소스 조건이 충족됨)가 더 자주 그리고 더 오랜 기간 동안 열릴 가능성이 높아집니다. 이는 사용자에게 영향을 주거나 시스템 성능을 저하시킬 가능성이 더 높은 시기일 수 있음을 명심합니다.

사용 가능한 작업

API를 사용하면 개발자가 다음 작업을 수행할 수 있습니다.

  • 정책을 구성합니다.
  • 정책에 대한 알림을 구독/구독 취소합니다.

API는 빈 정책 구성 또는 대부분의 앱의 요구 사항을 대상으로 하는 템플릿 구성 중 하나에서 시작하여 개발자 시나리오에 가장 적합한 정책을 사용자 지정할 수 있는 유연성을 제공합니다. 가장 간단한 경우:

  • ACTIVITY_COORDINATOR_POLICY_TEMPLATE 내에서 템플릿 정책 ID를 사용하여 정책을 할당합니다.

사용자 지정 개발자 시나리오의 경우

  • 템플릿 정책(잠재적으로 빈 정책)을 할당합니다.
  • 관련 리소스에 대해 원하는 조건을 설정합니다.

활동 코디네이터 API 개요

올바른 활동 코디네이터 정책 선택

활동 코디네이터 예제 프로젝트