Android fornisce un'implementazione predefinita del framework Android che include il supporto per vari protocolli e modalità Wi-Fi, tra cui:
- Infrastruttura Wi-Fi (STA)
- Hotspot Wi-Fi (Soft AP) in modalità tethering o solo locale
- Wi-Fi Direct (p2p)
- Wi-Fi Aware (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Un'applicazione che utilizza i servizi Wi-Fi comunica direttamente con i vari servizi Wi-Fi tramite Binder. I servizi Wi-Fi vengono eseguiti nel servizio di sistema e comunicano con l'HAL tramite le interfacce HIDL e AIDL fornite. Questo diagramma mostra la struttura generale dello stack Wi-Fi di Android.
Figura 1. Architettura Wi-Fi di Android
Framework dell'applicazione
A livello di framework dell'applicazione si trova il codice dell'applicazione, che utilizza le varie
android.net.wifi
API per interagire con il framework e l'hardware Wi-Fi. Internamente, questo codice chiama il processo Wi-Fi tramite il meccanismo IPC Binder.
Servizi Wi-Fi
I servizi Wi-Fi vengono eseguiti nel servizio di sistema e si trovano in packages/modules/Wifi/service/. Il servizio Wi-Fi comunica con l'HAL Wi-Fi tramite AIDL.
Esistono vari servizi Wi-Fi:
- Servizio Wi-Fi: meccanismo principale per il controllo delle modalità dell'infrastruttura Wi-Fi (sia STA che AP).
- Servizio Wi-Fi P2P: gestisce la modalità Wi-Fi Direct.
- Servizio Wi-Fi Aware: gestisce la modalità Wi-Fi Aware.
- Servizio Wi-Fi RTT: gestisce la funzionalità IEEE 802.11mc FTM.
Il framework Wi-Fi include anche un processo autonomo, wificond, che si trova
in system/connectivity/wificond. Il processo wificond comunica con il driver Wi-Fi tramite i comandi nl80211 standard.
HAL Wi-Fi
Il framework Wi-Fi ha tre superfici HAL Wi-Fi rappresentate da tre interfacce diverse: HAL del fornitore, HAL del supplicante e HAL di Hostapd.
Per maggiori dettagli sulle implementazioni dei vari HAL, vedi HAL Wi-Fi.