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 (PA secundario) en modo de anclaje a red 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.
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 distintas APIs de android.net.wifi para interactuar con el hardware y el framework 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 la HAL de Wi-Fi a través del 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 Wi-Fi RTT: Administra la funcionalidad del estándar IEEE 802.11mc FTM.
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 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 las diferentes HAL, consulta HAL de Wi-Fi.