API och terminologi för aktivitetskoordinator
För att förstå API:et för aktivitetskoordinator är det viktigt att bekanta sig med de termer som används av API:et.
API:et för aktivitetskoordinatorn samordnar körningen av uppskjutbara uppgifter, så kallade aktiviteter, på ett system. Utvecklare kan använda API:et för att få meddelanden om när en aktivitet ska startas eller stoppas baserat på ett önskat systemtillstånd. Det här tillståndet definieras av en princip som beskriver de optimala villkoren för systemresurser när en aktivitet körs. Utvecklare prenumererar på dessa principer för att få meddelanden skickade till ett angivet återanrop, som de använder för att samordna körningen av sin aktivitet.
Not
De här meddelandena är till för att samordna lågprioritets- eller resursintensiva uppgifter som kan skjutas upp till senare. Om det finns en uppgift med hög prioritet som måste utföras oavsett systemvillkor bör den inte förlita sig på det här API:et.
API-specifik terminologi
Resurs
En resurs är en fysisk komponent eller ett attribut i systemet som förbrukas eller påverkas av en aktivitet. Enkla exempel är traditionella systemresurser som CPU, systemdisk och GPU. Mindre traditionella resurser omfattar saker som ström och inaktiva användare.
Tillstånd
Ett villkor är en kvalitativ beskrivning av en resurs önskade tillstånd som antingen bra, mediumeller inte anges. På en grundläggande nivå innebär ett bra villkor att det är en bra tid att använda en resurs. Ett visst resursvillkorspar kan utvärderas med en mängd olika dimensioner.
Utvecklare måste välja vilka villkor som ska användas för enskilda resurser, så att de passar arbetsbelastningens behov. Detta gör det möjligt för API:et att samordna arbetet mellan sina konsumenter på bästa sätt.
Kan skjutas upp
Uppskjutbara uppgifter är de uppgifter som inte omedelbart påverkar användarupplevelsen för ett program, även om bristen på körning under en längre period fortfarande kan påverka den övergripande upplevelsen. I allmänhet behöver dessa uppgifter inte köras omedelbart och kan skjuta upp körningen till en tidpunkt då systemet är i ett önskvärt tillstånd. Det här är tider då körningen av uppgiften inte påverkar användarens upplevelse eller systemprestanda. Sådana uppgifter kan omfatta:
- Indexera om en mediekatalog
- Träna eller uppdatera en rekommendationsmodell
- Installera plugin-uppdateringar
Aktivitet
En aktivitet är en uppskjutbar arbetsenhet enligt utvecklarens definition. Aktiviteter förbrukar systemresurser som ska köras, vilket kan påverka användarupplevelsen. Utvecklare måste förstå hur deras aktivitet förbrukar dessa resurser så att de kan använda API:et på rätt sätt. Sedan kan de skjuta upp aktivitetskörningen till en mer idealisk tidpunkt med hjälp av API:et, i stället för att omedelbart utföra sådant arbete vid tillfällen som kan påverka användarupplevelsen avsevärt.
Politik
Principer definierar vad en idealisk tid tid att köra innebär genom att beskriva de önskade villkoren för olika resurser som krävs för att köra eller påverkas av utvecklarens aktivitet. En princip skapas av flera par resurser och villkor som definierar enskilda resursvillkor.
En princip kan ange villkor för resurser som Power, Memory och CPU, men även exkludera resurser som GPU baserat på deras relevans. En princip anses öppna när alla resursvillkor uppfylls och stängs annat. Principer beskriver inte hur mycket av en viss resurs som en aktivitet förväntas förbruka. API:et använder principkonfigurationer för att fatta samordningsbeslut mellan API-konsumenter.
När du konfigurerar en princip rekommenderar vi att utvecklaren börjar med det bästa villkoret (bra) för varje resurs så att API:et kan hjälpa dem att köras vid de bästa tidpunkterna, när körningen minst sannolikt kommer att påverka användarens upplevelse eller systemprestanda. Villkor kan sänkas (t.ex. från bra till medelhög) efteråt om aktiviteten inte meddelas att köras tillräckligt ofta eller tillräckligt länge för att uppfylla utvecklarens behov.
Abonnemang
Prenumerationer är samordningsmekanismen för aktiviteter. Utvecklare prenumererar på en princip med ett återanrop som API:et anropar med samordningsmeddelanden. Dessa meddelanden informerar utvecklaren när de ska starta/återuppta eller stoppa/pausa sin aktivitet. Meddelanden baseras på resursvillkoren för den prenumerationsprincip som konfigurerades vid tidpunkten för prenumerationen och samordningsbeslut som fattats av API:et.
Principmall
En medlem i uppräkningen ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Dessa kan användas när du skapar en princip för att förkonfigurera den med rimliga villkor som är utformade för att uppfylla de vanligaste behoven för de flesta aktiviteter och minimera påverkan på användaren.
Degradera
Du kan nedgradera en princip eller resurs genom att ändra från bättre till mindre villkor för att göra den mer tillåtande och öka sannolikheten för att principens villkor uppfylls. Du kan till exempel nedgradera ett bra villkor för CPU- genom att ändra det till ett medelhögt villkor. Ett medelhögt villkor har mindre restriktiva krav och är därför mer sannolikt att uppfyllas. På principnivå ökar sannolikheten för att principen öppnas (alla resursvillkor uppfylls) oftare och längre tidsperioder, med tanke på att det kan vara tillfällen då det är större sannolikhet att orsaka användarpåverkan eller försämra systemprestanda.
Tillgängliga åtgärder
MED API:et kan utvecklaren utföra följande åtgärder:
- Konfigurera en princip.
- Prenumerera/avsluta prenumeration på meddelanden för principer.
API:et ger flexibiliteten att anpassa principer så att de passar bäst för utvecklarscenariot, från antingen en tom principkonfiguration eller en av de mallkonfigurationer som är inriktade på de flesta appars behov. I det enklaste fallet:
- Allokera en princip med hjälp av ett mallprincip-ID inom ACTIVITY_COORDINATOR_POLICY_TEMPLATE.
För ett mer anpassat utvecklarscenario kan du
- Allokera en mallprincip (potentiellt en tom).
- Ange önskade villkor för relevanta resurser.
Relaterade ämnen
översikt över API:et för aktivitetskoordinator