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 directo (P2P)
  • Reconocimiento de Wi-Fi (NAN)
  • RTT de Wi-Fi (FTM de IEEE 802.11mc)

Una aplicación que usa servicios de Wi-Fi se comunica directamente con los distintos 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 la 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. Internamente, 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 la 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 (tanto STA como AP).
  • Servicio Wi-Fi P2P: Administra el modo Wi-Fi directo.
  • Servicio de reconocimiento de Wi-Fi: Administra el modo de reconocimiento de Wi-Fi.
  • Servicio de Wi-Fi RTT: Administra la funcionalidad de FTM IEEE 802.11mc.

El framework de Wi-Fi también incluye un proceso independiente, wificond, ubicado 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 superficies de HAL de Wi-Fi representadas por tres interfaces diferentes: HAL del proveedor, HAL de Supplicant y HAL de Hostapd.

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