Android proporciona una implementación predeterminada del marco de trabajo de Android que incluye soporte para varios protocolos y modos de Wi-Fi, que incluyen:
- Infraestructura Wi-Fi (STA)
- Punto de acceso Wi-Fi (Soft AP) en modo conectado o solo local
- Wi-Fi directo (p2p)
- Compatible con Wi-Fi (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Una aplicación que utiliza servicios Wi-Fi se comunica directamente con los distintos servicios Wi-Fi a través de Binder. Los servicios de Wi-Fi se ejecutan en el Servicio del sistema y se comunican con HAL a través de las interfaces HIDL y AIDL proporcionadas. Este diagrama muestra la estructura general de la pila de Wi-Fi de Android.
Figura 1. Arquitectura Wi-Fi de Android
Marco de aplicación
En el nivel del marco de la aplicación está el código de la aplicación, que utiliza las diversas API de android.net.wifi para interactuar con el marco y el hardware de Wi-Fi. Internamente, este código llama al proceso Wi-Fi a través del mecanismo Binder IPC.
servicios wifi
Los servicios de Wi-Fi se ejecutan en el Servicio del Sistema y se encuentran en packages/modules/Wifi/service/
. El servicio Wi-Fi se comunica con Wi-Fi HAL a través de AIDL.
Existen varios servicios de Wi-Fi:
- Servicio Wi-Fi: Mecanismo principal para controlar los modos de infraestructura Wi-Fi (tanto STA como AP).
- Servicio Wi-Fi P2P: Gestiona el modo Wi-Fi Direct.
- Servicio Wi-Fi Aware: administra el modo Wi-Fi Aware.
- Servicio Wi-Fi RTT: Gestiona la funcionalidad IEEE 802.11mc FTM.
El marco 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 mediante comandos estándar nl80211
.
HAL Wi-Fi
El marco Wi-Fi tiene tres superficies Wi-Fi HAL representadas por tres interfaces diferentes: Vendor HAL, Supplicant HAL y Hostapd HAL.
Para obtener detalles sobre las implementaciones de los distintos HAL, consulte Wi-Fi HAL .