Visão geral

O Android oferece uma implementação padrão do framework 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 de Wi-Fi se comunica diretamente com os vários serviços de 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 de Wi-Fi do Android.

Arquitetura de Wi-Fi

Figura 1. Arquitetura de Wi-Fi do Android

Framework do aplicativo

No nível do framework do aplicativo, há o código do aplicativo, que usa as várias android.net.wifi APIs para interagir com o framework e o hardware de Wi-Fi. Internamente, esse código chama o processo de 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 pelo AIDL.

Há vários serviços de Wi-Fi:

  • Serviço de Wi-Fi: mecanismo principal para controlar os modos de infraestrutura de Wi-Fi (STA e AP).
  • Serviço de Wi-Fi P2P: gerencia o modo Wi-Fi Direct.
  • Serviço de Wi-Fi Aware: gerencia o modo Wi-Fi Aware.
  • Serviço de Wi-Fi RTT: gerencia a funcionalidade IEEE 802.11mc FTM.

O framework de 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 de Wi-Fi tem três superfícies HAL de Wi-Fi representadas por três interfaces diferentes: HAL de fornecedor, HAL de suplicante e HAL de Hostapd.

Para detalhes sobre implementações das várias HALs, consulte HAL de Wi-Fi.