Google se compromete a avanzar en la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Salud Android

Android 9 incluye android.hardware.health HAL 2.0, una importante actualización de la versión de health@1.0 HAL. Esta nueva HAL tiene las siguientes ventajas:

  • separación más limpia entre marco y el código de vendedor.
  • Desaprueba la innecesaria healthd demonio.
  • Mayores grados de libertad para la personalización proveedor en los informes de información sanitaria.
  • Más información sobre la salud de la batería del dispositivo solo.

requisitos

Dispositivos de lanzamiento con Android 9 deben proporcionar la HAL 2.0 (y no deben proporcionar la 1,0 HAL). Los dispositivos no lanzar con Android 9 pero la planificación para actualizar la imagen de proveedor de marco de destino matriz de compatibilidad de la versión 3 (lanzado en Android 9) debe remover 1.0 HAL implementaciones existentes y proporcionar la HAL 2.0.

AOSP incluye múltiples librerías de apoyo diseñados para ayudarle a implementar el 2,0 HAL y la transición de la antigua 1.0 HAL.

Terminología

  • health@1.0: abreviatura de android.hardware.health@1.0 . Se refiere a la salud HIDL HAL versión 1.0 lanzado en Android 8.0.
  • health@2.0: abreviatura de android.hardware.health@2.0 . Se refiere a la salud HIDL HAL versión 2.0 lanzado en Android 9.
  • Cargador: Funcionamiento ejecutable en modo apagado de carga que muestra la animación de teléfono de colocación.
  • recuperación: Funcionamiento ejecutable en modo de recuperación que se debe recuperar la información de la batería.
  • healthd: legado demonio que se ejecuta en Android que recupera la información relacionada con la salud y la proporciona al marco.
  • storaged: demonio que se ejecuta en Android que recupera información de almacenamiento y proporciona al marco.

Salud en 8.x Android

En 8.x Android, el componente de salud funciona como se detalla en el siguiente diagrama:

Salud en 8.x Android

Figura 1. Salud en 8.x Android

En este diagrama:

  • Un (1) aglutinante llamada y una llamada (1) hwbinder son utilizados por el marco para comunicarse con el hardware.
  • healthd vincula estáticamente a libhealthd_android , libbatterymonitor y libbatteryservice .
  • health@1.0-impl estáticamente enlaces a libhealthd. BOARD .

Cada tarjeta puede personalizar un diferente libhealthd. BOARD ; se determina en tiempo de compilación lo cargador, health@1.0-impl y enlace de recuperación a.

Para otros modos:

Charing modo apagado y en el modo de recuperación 8.x Android

Figura 2. Salud en 8.x Android, fuera de modo de carga y el modo de recuperación

  • cargador se vincula estáticamente a libhealthd. BOARD , libhealthd_charger y libbatterymonitor .
  • la recuperación se vincula estáticamente a libhealthd. BOARD y libbatterymonitor .

Salud en Android 9

En Android 9, el componente de salud funciona como se detalla en el siguiente diagrama: Salud en Android 9

Figura 3. Salud en Android 9

Los intentos marco para recuperar el servicio de health@2.0 hwservicemanager . Si falla, se pone en health@1.0 (en 8.x Android). La ruta de código legado se mantiene por lo que la imagen del sistema androide 9 es compatible la imagen proveedor 8.x Android con. El marco no recupera la información de ambas HAL porque sólo una versión de servicio (1.0 o 2.0) puede existir en el dispositivo.

Para otros modos:

Charing modo apagado y recuperación en Android 9

Figura 4. Salud en Android 9, fuera de modo de carga y el modo de recuperación

interfaz de HAL

El HAL health@2.0 proporciona la misma funcionalidad que el marco como el viejo demonio de healthd. También proporciona APIs que son similares a lo que healthd proporcionado previamente como un servicio de aglutinante (es decir IBatteryPropertiesRegistrar ).

La interfaz principal, iHealth , proporciona las siguientes funciones:

  • registerCallback , para reemplazar IBatteryPropertiesRegistrar.registerListener
  • unregisterCallback , para reemplazar IBatteryPropertiesRegistrar.unregisterListener
  • update , reemplazar IBatteryPropertiesRegistrar.scheduleUpdate
  • IBatteryPropertiesRegistrar.getProperties se sustituyen por los siguientes:
    • getChargeCounter
    • getCurrentNow
    • getCurrentAverage
    • getCapacity
    • getEnergyCounter
    • getChargeStatus
    • getHealthInfo

Además, IHealth proporciona las siguientes nuevas APIs para storaged para recuperar información relacionada con el almacenamiento específica del proveedor:

  • getStorageInfo
  • getDiskStats

Una nueva estructura, @2.0::HealthInfo , se devuelve a través de devoluciones de llamada y getHealthInfo . Esta estructura contiene toda la información de estado de los dispositivos disponibles a través de HAL health@2.0, incluyendo:

  • Información de carga (AC / USB / inalámbrica, corriente, voltaje, etc.)
  • Información sobre la batería (presencia, nivel de batería, corriente, voltaje, carga, tecnología, etc.)
  • almacenamiento de información (información del dispositivo de almacenamiento, las estadísticas de disco)

Para obtener información sobre la implementación del servicio de salud, consulte Implementación de la Salud .