O Android oferece uma implementação de framework padrão do Android que inclui suporte a vários protocolos e modos de Wi-Fi, incluindo:
- Infraestrutura de Wi-Fi (STA)
- Ponto de acesso Wi-Fi (soft AP) nos modos de tethering ou somente local
- Wi-Fi Direct (p2p)
- Wi-Fi Aware (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Um aplicativo que usa serviços Wi-Fi se comunica diretamente com os vários serviços Wi-Fi pelo Binder. Os serviços de Wi-Fi são executados no serviço do sistema e se comunicam com a HAL pelas interfaces HIDL e AIDL fornecidas. Este diagrama mostra a estrutura geral da pilha do Android Wi-Fi.
Figura 1. Arquitetura do Wi-Fi do Android
Framework do aplicativo
No nível do framework do aplicativo, está o código do aplicativo, que usa as várias APIs android.net.wifi para interagir com o framework e o hardware do Wi-Fi. Internamente, esse código chama o processo Wi-Fi pelo mecanismo IPC do Binder.
Serviços de Wi-Fi
Os serviços de Wi-Fi são executados no serviço do sistema e estão localizados em
packages/modules/Wifi/service/
. O serviço de Wi-Fi se comunica com a
HAL de Wi-Fi por AIDL.
Há vários serviços de 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 de RTT do Wi-Fi: gerencia a funcionalidade de FTM IEEE 802.11mc.
O framework do Wi-Fi também inclui um processo independente, wificond, localizado
em system/connectivity/wificond
. O processo wificond se comunica com
o driver de Wi-Fi por comandos nl80211
padrão.
HALs de Wi-Fi
O framework Wi-Fi tem três plataformas HAL de Wi-Fi representadas por três interfaces diferentes: HAL do fornecedor, HAL do solicitante e HAL do Hostapd.
Para saber mais sobre as implementações das várias HALs, consulte HAL de Wi-Fi.