Compartir a través de


API y terminología del coordinador de actividades

Para comprender la API de coordinador de actividades, es importante familiarizarse con los términos usados por la API.

La API coordinador de actividades coordina la ejecución de tareas aplazables, denominadas actividades, en un sistema. Los desarrolladores pueden usar la API para obtener notificaciones de cuándo iniciar o detener una actividad en función de un estado del sistema deseado. Este estado se define mediante una directiva, que describe las condiciones óptimas de los recursos del sistema mientras se ejecuta una actividad. Los desarrolladores se suscriben a estas directivas para que las notificaciones se envíen a una devolución de llamada proporcionada, que usan para coordinar la ejecución de su actividad.

Nota

Estas notificaciones son para coordinar tareas de prioridad baja o de uso intensivo de recursos que se pueden aplazar a un momento posterior. Si hay una tarea de prioridad alta que debe realizarse independientemente de las condiciones del sistema, no debe basarse en esta API.

Terminología específica de la API

Resource

Un recurso es un componente físico o atributo del sistema que se consume o afecta a una actividad. Algunos ejemplos sencillos son recursos tradicionales del sistema, como CPU, disco del sistema y GPU. Entre los recursos menos tradicionales se incluyen cosas como energía e inactividad del usuario.

Condición

Una condición es una descripción cualitativa del estado deseado de un recurso como bueno, medio o no establecido. En un nivel básico, una buena condición significa que es un buen momento para usar un recurso. Un par de condición de recurso determinado se puede evaluar mediante una variedad de dimensiones.

Los desarrolladores deben elegir qué condiciones usar para los recursos individuales, por lo que se ajustarán a las necesidades de su carga de trabajo. Esto permite a la API coordinar mejor el trabajo entre sus consumidores.

Aplazable

Las tareas aplazables son aquellas que no afectan inmediatamente a la experiencia del usuario de una aplicación, aunque la falta de ejecución durante un período prolongado puede seguir afectando a la experiencia general. En general, estas tareas no necesitan ejecutarse inmediatamente y pueden aplazar su ejecución a una hora en que el sistema está en un estado deseable. Estas son horas en las que la ejecución de la tarea no interfiere con la experiencia del usuario o el rendimiento del sistema. Estas tareas podrían incluir:

  • Volver a indexar un catálogo multimedia
  • Entrenamiento o actualización de un modelo de recomendación
  • Instalación de actualizaciones de complementos

Actividad

Una actividad es una unidad de trabajo aplazable definida por el desarrollador. Las actividades consumen intrínsecamente recursos del sistema para ejecutar, lo que puede dar lugar a un impacto en la experiencia del usuario. Los desarrolladores deben comprender cómo su actividad consume estos recursos para que puedan usar correctamente la API. Después, pueden aplazar la ejecución de la actividad a un tiempo más ideal mediante la API, en lugar de ejecutar inmediatamente este trabajo en ocasiones, lo que puede afectar significativamente a la experiencia del usuario.

Directiva

Las directivas definen el tiempo ideal para ejecutarse mediante la descripción de las condiciones deseadas de varios recursos necesarios para ejecutar o verse afectados por la actividad del desarrollador. Una directiva está formada por varios pares de recursos y condiciones, definiendo condiciones de recursos individuales.

Una directiva puede especificar condiciones para recursos como Energía, Memoria y CPU, pero también excluir recursos como GPU en función de su relevancia. Una directiva se considera abierta cuando se cumplen todas las condiciones de recursos y se cierran de lo contrario. Las directivas no describen la cantidad de un recurso determinado que se espera que consuma una actividad. La API usa configuraciones de directiva para tomar decisiones de coordinación entre consumidores de API.

Al configurar una directiva, se recomienda que el desarrollador comience con la mejor condición (buena) para cada recurso para que la API pueda ayudarles a ejecutarse en los mejores momentos, cuando es menos probable que la ejecución afecte al rendimiento del sistema o la experiencia del usuario. Las condiciones se pueden reducir (por ejemplo, de buena a media) después si la actividad no se notifica que se ejecute con frecuencia o lo suficientemente larga como para satisfacer las necesidades del desarrollador.

Subscription

Las suscripciones son el mecanismo de coordinación para las actividades. Los desarrolladores se suscriben a una directiva con una devolución de llamada, que la API llama con notificaciones de coordinación. Estas notificaciones informan al desarrollador cuando deben iniciar, reanudar o detener o pausar su actividad. Las notificaciones se basan en las condiciones de recursos de la directiva suscrita, tal como se configura en el momento de la suscripción y las decisiones de coordinación tomadas por la API.

Plantilla de la directiva

Miembro de la enumeración ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Se pueden usar al crear una directiva para configurarla previamente con condiciones razonables diseñadas para satisfacer las necesidades comunes de la mayoría de las actividades y minimizar el impacto en el usuario.

Degradar

Puede degradar una directiva o recurso cambiando de mejor a menos condiciones para que sea más permisiva y aumente la probabilidad de que se cumplan las condiciones de la directiva. Por ejemplo, puede degradar una buena condición para la CPU cambiando a una condición media . Una condición media tiene requisitos menos restrictivos y, por tanto, es más probable que se cumpla. En el nivel de directiva, esto aumenta la probabilidad de que la directiva se abra (se cumplen todas las condiciones de recursos) con mayor frecuencia y durante períodos de tiempo más largos, teniendo en cuenta que estas pueden ser ocasiones en las que haya mayor probabilidad de causar un impacto en el usuario o degradar el rendimiento del sistema.

Acciones disponibles

La API permite al desarrollador realizar las siguientes acciones:

  • Configurar una directiva.
  • Suscríbase o cancele la suscripción a las notificaciones de las directivas.

La API proporciona la flexibilidad de personalizar directivas para adaptarse mejor al escenario de desarrollador, empezando por una configuración de directiva vacía o por una de las configuraciones de plantilla que tienen como destino la mayoría de las aplicaciones. En el caso más sencillo:

  • Asigne una directiva mediante un identificador de directiva de plantilla dentro de ACTIVITY_COORDINATOR_POLICY_TEMPLATE.

Para un escenario de desarrollador más personalizado,

  • Asigne una directiva de plantilla (posiblemente una vacía).
  • Establezca las condiciones deseadas para los recursos pertinentes.

Introducción a la API del coordinador de actividades

Elección de la directiva de coordinador de actividades adecuada

Proyecto de ejemplo coordinador de actividades