O Android fornece uma implementação de estrutura Android padrão que inclui suporte para vários protocolos e modos Wi-Fi, incluindo:
- Infraestrutura Wi-Fi (STA)
- Ponto de acesso Wi-Fi (Soft AP) nos modos conectado ou somente local
- Wi-Fi direto (p2p)
- Com reconhecimento de Wi-Fi (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Um aplicativo que usa serviços Wi-Fi se comunica diretamente com vários serviços Wi-Fi por meio do Binder. Os serviços Wi-Fi são executados no Serviço do Sistema e se comunicam com o HAL pelas interfaces HIDL e AIDL fornecidas. Este diagrama mostra a estrutura geral da pilha Wi-Fi do Android.
Figura 1. Arquitetura Wi-Fi do Android
Estrutura do aplicativo
No nível da estrutura do aplicativo está o código do aplicativo, que usa as várias APIs android.net.wifi para interagir com a estrutura e o hardware do Wi-Fi. Internamente, esse código chama o processo Wi-Fi por meio do mecanismo Binder IPC.
Serviços Wi-Fi
Os serviços Wi-Fi são executados no Serviço do Sistema e estão localizados em packages/modules/Wifi/service/
. O serviço Wi-Fi se comunica com o HAL Wi-Fi por AIDL.
Existem vários serviços Wi-Fi:
- Serviço Wi-Fi: mecanismo principal para controlar os modos de infraestrutura Wi-Fi (STA e AP).
- Serviço Wi-Fi P2P: gerencia o modo Wi-Fi Direct.
- Serviço Wi-Fi Aware: gerencia o modo Wi-Fi Aware.
- Serviço Wi-Fi RTT: gerencia a funcionalidade IEEE 802.11mc FTM.
A estrutura Wi-Fi também inclui um processo independente, wificond , localizado em system/connectivity/wificond
. O processo wificond se comunica com o driver Wi-Fi por meio de comandos nl80211
padrão.
HALs Wi-Fi
A estrutura Wi-Fi possui três superfícies HAL Wi-Fi representadas por três interfaces diferentes: HAL do fornecedor, HAL do suplicante e HAL do Hostapd.
Para obter detalhes sobre implementações dos vários HALs, consulte Wi-Fi HAL .