Descripción general

Android proporciona una implementación predeterminada del framework de Android que incluye compatibilidad con varios protocolos y modos de Wi-Fi, incluidos los siguientes:

  • Infraestructura de Wi-Fi (STA)
  • Hotspot de Wi-Fi (AP en segundo plano) en modo de conexión mediante dispositivo móvil o solo local
  • Wi-Fi Direct (p2p)
  • Wi-Fi Aware (NAN)
  • RTT de Wi-Fi (FTM de IEEE 802.11mc)

Una aplicación que usa servicios de Wi-Fi se comunica directamente con los diversos servicios de Wi-Fi a través de Binder. Los servicios de Wi-Fi se ejecutan en el servicio del sistema y se comunican con el HAL a través de las interfaces HIDL y AIDL proporcionadas. En este diagrama, se muestra la estructura general de la pila de Wi-Fi de Android.

Arquitectura de Wi-Fi

Figura 1: Arquitectura de Wi-Fi de Android

Framework de la aplicación

En el nivel del framework de la aplicación, se encuentra el código de la aplicación, que usa las diversas APIs de android.net.wifi para interactuar con el framework y el hardware de Wi-Fi. De forma interna, este código llama al proceso de Wi-Fi a través del mecanismo de IPC de Binder.

Servicios de Wi-Fi

Los servicios de Wi-Fi se ejecutan en el servicio del sistema y se encuentran en packages/modules/Wifi/service/. El servicio de Wi-Fi se comunica con el HAL de Wi-Fi a través de AIDL.

Existen varios servicios de Wi-Fi:

  • Servicio de Wi-Fi: Es el mecanismo principal para controlar los modos de infraestructura de Wi-Fi (STA y AP).
  • Servicio Wi-Fi P2P: Administra el modo Wi-Fi Direct.
  • Servicio de reconocimiento de Wi-Fi: Administra el modo de reconocimiento de Wi-Fi.
  • Servicio de RTT de Wi-Fi: Administra la funcionalidad de FTM IEEE 802.11mc.

El framework de Wi-Fi también incluye un proceso independiente, wificond, que se encuentra en system/connectivity/wificond. El proceso wificond se comunica con el controlador de Wi-Fi a través de comandos nl80211 estándar.

HAL de Wi-Fi

El framework de Wi-Fi tiene tres plataformas de HAL de Wi-Fi representadas por tres interfaces diferentes: HAL del proveedor, HAL del solicitante y HAL de Hostapd.

Para obtener detalles sobre las implementaciones de los diversos HAL, consulta HAL de Wi-Fi.