Freigeben über


Activity Coordinator API und Terminologie

Um die Activity Coordinator-API zu verstehen, ist es wichtig, sich mit den Begriffen vertraut zu machen, die von der API verwendet werden.

Die Aktivitätskoordinator-API koordiniert die Ausführung von zurücksetzbaren Aufgaben, die als Aktivitäten bezeichnet werden, auf einem System. Entwickler können die API verwenden, um Benachrichtigungen darüber zu erhalten, wann eine Aktivität basierend auf einem gewünschten Systemstatus gestartet oder beendet werden soll. Dieser Zustand wird durch eine Richtlinie definiert, die die optimalen Bedingungen von Systemressourcen beim Ausführen einer Aktivität beschreibt. Entwickler abonnieren diese Richtlinien, um Benachrichtigungen an einen bereitgestellten Rückruf zu senden, mit dem sie die Ausführung ihrer Aktivität koordinieren.

Anmerkung

Diese Benachrichtigungen sind die Koordinierung von Vorgängen mit niedriger Priorität oder ressourcenintensiven Vorgängen, die zu einem späteren Zeitpunkt zurückgestellt werden können. Wenn es eine Aufgabe mit hoher Priorität gibt, die unabhängig von den Systembedingungen erfolgen muss, sollte sie sich nicht auf diese API verlassen.

API-spezifische Terminologie

Ressource

Eine Ressource ist eine physische Komponente oder ein Attribut des Systems, das von einer Aktivität verbraucht oder beeinflusst wird. Einfache Beispiele sind herkömmliche Systemressourcen wie CPU, Systemdatenträger und GPU. Weniger herkömmliche Ressourcen umfassen Dinge wie Energie und Benutzer-Leerlauf.

Zustand

Eine Bedingung ist eine qualitative Beschreibung des gewünschten Zustands einer Ressource entweder als guten, mittlerenoder nicht festgelegt. Eine gute Bedingung bedeutet, dass es eine gute Zeit ist, eine Ressource zu verwenden. Ein bestimmtes Ressourcenbedingungspaar kann mit einer Vielzahl von Dimensionen ausgewertet werden.

Entwickler müssen auswählen, welche Bedingungen für einzelne Ressourcen verwendet werden sollen, damit sie den Anforderungen ihrer Arbeitsauslastung entsprechen. Auf diese Weise kann die API die Arbeit zwischen den Verbrauchern am besten koordinieren.

Aufschiebbar

zurückgestellte Aufgaben sind diese Aufgaben, die sich nicht sofort auf die Benutzererfahrung einer Anwendung auswirken, obwohl sich der Mangel an Ausführung über einen längeren Zeitraum noch auf die Gesamterfahrung auswirken kann. Im Allgemeinen müssen diese Aufgaben nicht sofort ausgeführt werden und können die Ausführung auf einen Zeitpunkt zurückstellen, zu dem sich das System in einem wünschenswerten Zustand befindet. Dies sind Zeiten, in denen die Ausführung der Aufgabe die Benutzererfahrung oder die Systemleistung nicht beeinträchtigt. Solche Aufgaben könnten folgendes umfassen:

  • Erneute Indizierung eines Medienkatalogs
  • Schulung oder Aktualisierung eines Empfehlungsmodells
  • Installieren von Plug-In-Updates

Aktivität

Eine Aktivität ist eine zurückstellbare Arbeitseinheit, die vom Entwickler definiert wird. Aktivitäten verbrauchen systemeigene Ressourcen zur Ausführung, was zu Auswirkungen auf die Benutzererfahrung führen kann. Entwickler müssen verstehen, wie ihre Aktivitäten diese Ressourcen nutzen, damit sie die API entsprechend verwenden können. Anschließend können sie die Aktivitätsausführung auf einen idealen Zeitpunkt mit der API zurückstellen, anstatt diese Arbeit zu Zeiten sofort auszuführen, die sich erheblich auf die Benutzererfahrung auswirken können.

Politik

Richtlinien definieren, was eine idealen Zeit Ausführungszeit bedeutet, indem die gewünschten Bedingungen verschiedener Ressourcen beschrieben werden, die für die Ausführung oder Auswirkung durch die Aktivität des Entwicklers erforderlich sind. Eine Richtlinie wird durch mehrere Ressourcenpaare und Bedingungen gebildet, wobei einzelne Ressourcenbedingungendefiniert werden.

Eine Richtlinie kann Bedingungen für Ressourcen wie Power, Memory und CPU angeben, aber auch Ressourcen wie GPU basierend auf ihrer Relevanz ausschließen. Eine Richtlinie gilt als geöffnete, wenn alle Ressourcenbedingungen erfüllt sind und andernfalls geschlossen . Richtlinien beschreiben nicht, wie viel von einer bestimmten Ressource eine Aktivität verbrauchen soll. Die API verwendet Richtlinienkonfigurationen, um Koordinationsentscheidungen zwischen API-Verbrauchern zu treffen.

Bei der Konfiguration einer Richtlinie wird empfohlen, dass der Entwickler mit der besten (guten) Bedingung für jede Ressource beginnt, damit die API sie am besten ausführen kann, wenn die Ausführung am ehesten auswirkungen auf die Benutzerfreundlichkeit oder Systemleistung hat. Bedingungen können danach gesenkt werden (z. B. von guten auf mittlere), wenn die Aktivität nicht so häufig genug oder lang genug ausgeführt wird, um die Anforderungen des Entwicklers zu erfüllen.

Abonnement

Abonnements sind der Koordinierungsmechanismus für Aktivitäten. Entwickler abonnieren eine Richtlinie mit einem Rückruf, den die API mit Koordinationsbenachrichtigungen aufruft. Diese Benachrichtigungen informieren den Entwickler, wann er seine Aktivität starten/fortsetzen oder anhalten soll. Benachrichtigungen basieren auf den Ressourcenbedingungen der abonnierten Richtlinie, wie sie zum Zeitpunkt des Abonnements konfiguriert sind, und Koordinationsentscheidungen, die von der API getroffen werden.

Richtlinienvorlage

Ein Mitglied der Enumeration ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Diese können beim Erstellen einer Richtlinie verwendet werden, um sie mit angemessenen Bedingungen vorzukonfigurieren, die den allgemeinen Anforderungen der meisten Aktivitäten entsprechen und die Auswirkungen auf den Benutzer minimieren.

Degradieren

Sie können downgrade einer Richtlinie oder Ressource ändern, indem Sie von besser zu weniger Bedingungen wechseln, um sie zu weniger eingeschränkter zu machen und die Wahrscheinlichkeit zu erhöhen, dass die Bedingungen der Richtlinie erfüllt werden. Sie können beispielsweise eine gute Bedingung für CPU- downgraden, indem Sie sie in eine mittlere Bedingung ändern. Eine mittlere Bedingung hat weniger restriktive Anforderungen und ist daher wahrscheinlicher zu erfüllen. Auf Der Richtlinienebene erhöht dies die Wahrscheinlichkeit, dass die Richtlinie geöffnet wird (alle Ressourcenbedingungen sind erfüllt), häufiger und für längere Zeiträume, wobei Sie bedenken, dass dies manchmal vorkommen kann, wenn eine höhere Wahrscheinlichkeit besteht, dass sich die Benutzer auf die Leistung des Benutzers auswirken oder die Systemleistung beeinträchtigt.

Verfügbare Aktionen

Die API ermöglicht es dem Entwickler, die folgenden Aktionen auszuführen:

  • Konfigurieren sie eine Richtlinie.
  • Abonnieren/Kündigen von Benachrichtigungen für Richtlinien.

Die API bietet die Flexibilität, Richtlinien so anzupassen, dass sie am besten in das Entwicklerszenario passen, beginnend mit einer leeren Richtlinienkonfiguration oder einer der Vorlagenkonfigurationen, die auf die Anforderungen der meisten Apps abzielen. Im einfachsten Fall:

  • Weisen Sie eine Richtlinie mithilfe einer Vorlagenrichtlinien-ID innerhalb ACTIVITY_COORDINATOR_POLICY_TEMPLATEzu.

Für ein benutzerdefiniertes Entwicklerszenario:

  • Zuweisen einer Vorlagenrichtlinie (potenziell leer).
  • Legen Sie die gewünschten Bedingungen für die relevanten Ressourcen fest.

Übersicht über die Activity Coordinator-API

Auswahl der richtigen Aktivitätskoordinator-Richtlinie

Activity Coordinator-Beispielprojekt