Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para entender a API do Coordenador de Atividades, é importante se familiarizar com os termos usados pela API.
A API do Coordenador de Atividades coordena a execução de tarefas adiadas, chamadas atividades, em um sistema. Os desenvolvedores podem usar a API para receber notificações de quando iniciar ou parar uma atividade com base em um estado de sistema desejado. Esse estado é definido por uma política, que descreve as condições ideais dos recursos do sistema durante a execução de uma atividade. Os desenvolvedores assinam essas políticas para enviar notificações para um retorno de chamada fornecido, que eles usam para coordenar a execução de suas atividades.
Nota
Essas notificações são para coordenar tarefas de baixa prioridade ou de uso intensivo de recursos que podem ser adiadas para um horário posterior. Se houver uma tarefa de alta prioridade que precise acontecer independentemente das condições do sistema, ela não deverá depender dessa API.
Terminologia específica da API
Recurso
Um recurso é um componente físico ou atributo do sistema que é consumido ou afetado por uma atividade. Exemplos simples são recursos tradicionais do sistema, como CPU, disco do sistema e GPU. Recursos menos tradicionais incluem itens como energia e ociosidade do usuário.
Condição
Uma condição é uma descrição qualitativa do estado desejado de um recurso como boa, média ou não definido. Em um nível básico, uma condição boa significa que é um bom momento usar um recurso. Um determinado par de condição de recurso pode ser avaliado usando uma variedade de dimensões.
Os desenvolvedores devem escolher quais condições usar para recursos individuais, para que eles se ajustem às necessidades de sua carga de trabalho. Isso permite que a API coordene melhor o trabalho entre seus consumidores.
Adiável
tarefas adiáveis são essas tarefas que não afetam imediatamente a experiência do usuário de um aplicativo, embora a falta de execução durante um longo período ainda possa afetar a experiência geral. Em geral, essas tarefas não precisam ser executadas imediatamente e podem adiar a execução para um momento em que o sistema está em um estado desejável. Esses são os momentos em que a execução da tarefa não interfere na experiência do usuário ou no desempenho do sistema. Essas tarefas podem incluir:
- Indexando novamente um catálogo de mídia
- Treinamento ou atualização de um modelo de recomendação
- Instalando atualizações de plug-in
Atividade
Uma atividade é uma unidade de trabalho adiada conforme definido pelo desenvolvedor. As atividades consomem inerentemente recursos do sistema a serem executados, o que pode resultar em impacto na experiência do usuário. Os desenvolvedores devem entender como sua atividade consome esses recursos para que possam usar a API adequadamente. Em seguida, eles podem adiar a execução da atividade para um momento mais ideal usando a API, em vez de executar imediatamente esse trabalho em momentos que podem afetar significativamente a experiência do usuário.
Política
As políticas definem qual hora ideal tempo para executar meios, descrevendo as condições desejadas de vários recursos necessários para execução ou afetados pela atividade do desenvolvedor. Uma política é formada por vários pares de recursos e condições, definindo condições individuais de recursos .
Uma política pode especificar condições para recursos como Energia, Memória e CPU, mas também excluir recursos como GPU com base em sua relevância. Uma política é considerada aberta quando todas as condições de recurso são atendidas e fechadas caso contrário. As políticas não descrevem quanto de um determinado recurso uma atividade deve consumir. A API usa configurações de política para tomar decisões de coordenação entre os consumidores de API.
Ao configurar uma política, é recomendável que o desenvolvedor comece com a melhor condição (boa) para cada recurso para que a API possa ajudá-los a executar nos melhores momentos, quando a execução é menos provável que afete a experiência do usuário ou o desempenho do sistema. As condições poderão ser reduzidas (por exemplo, de boa para média) posteriormente se a atividade não for notificada para ser executada com frequência ou tempo suficiente para atender às necessidades do desenvolvedor.
Subscrição
As assinaturas são o mecanismo de coordenação das atividades. Os desenvolvedores assinam uma política com um retorno de chamada, que a API chama com notificações de coordenação. Essas notificações informam ao desenvolvedor quando devem iniciar/retomar ou parar/pausar suas atividades. As notificações são baseadas nas condições de recurso da política assinada, conforme configurado no momento da assinatura, e nas decisões de coordenação tomadas pela API.
Modelo de política
Um membro da enumeração ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Elas podem ser usadas ao criar uma política para pré-configurá-la com condições razoáveis projetadas para atender às necessidades comuns da maioria das atividades e minimizar o impacto para o usuário.
Downgrade
Você pode downgrade uma política ou recurso mudando de condições melhores para menores para torná-la mais permissiva e aumentar a probabilidade de que as condições da política sejam atendidas. Por exemplo, você pode fazer downgrade de uma condição de boa para de CPU alterando-a para uma condição de média. Uma condição média tem requisitos menos restritivos e, portanto, é mais provável que seja atendida. No nível da política, isso aumenta a probabilidade de a política ser aberta (todas as condições de recurso são atendidas) com mais frequência e por períodos mais longos de tempo, tendo em mente que podem ser momentos em que há maior probabilidade de causar impacto do usuário ou degradar o desempenho do sistema.
Ações disponíveis
A API permite que o desenvolvedor execute as seguintes ações:
- Configurar uma política.
- Assinar/cancelar a assinatura de notificações para políticas.
A API fornece a flexibilidade de personalizar políticas para se ajustar melhor ao cenário do desenvolvedor, começando por uma configuração de política vazia ou uma das configurações de modelo que se destinam às necessidades da maioria dos aplicativos. No caso mais simples:
- Alocar uma política usando uma ID de política de modelo em ACTIVITY_COORDINATOR_POLICY_TEMPLATE.
Para um cenário de desenvolvedor mais personalizado,
- Aloque uma política de modelo (potencialmente uma vazia).
- Defina as condições desejadas para os recursos relevantes.
Tópicos relacionados
Visão geral da API do Coordenador de Atividades do