Przegląd

Android udostępnia domyślną implementację platformy Android, która obejmuje obsługę różnych protokołów i trybów Wi-Fi, w tym:

  • Infrastruktura Wi-Fi (STA)
  • Hotspot Wi-Fi (Soft AP) w trybie tetheringu lub tylko lokalnym
  • Wi-Fi Direct (p2p)
  • Wi-Fi Aware (NAN)
  • Wi-Fi RTT (IEEE 802.11mc FTM)

Aplikacja korzystająca z usług Wi-Fi komunikuje się bezpośrednio z różnymi usługami Wi-Fi za pomocą interfejsu Binder. Usługi Wi-Fi działają w usłudze systemowej i komunikują się z HAL za pomocą interfejsów HIDL i AIDL. Ten diagram przedstawia ogólną strukturę stosu Wi-Fi na Androidzie.

Architektura Wi-Fi

Rysunek 1. Architektura Wi-Fi w Androidzie

Platforma aplikacji

Na poziomie platformy aplikacji znajduje się kod aplikacji, który korzysta z różnych interfejsów APIandroid.net.wifi do interakcji z platformą Wi-Fi i sprzętem. Wewnętrznie ten kod wywołuje proces Wi-Fi za pomocą mechanizmu Binder IPC.

Usługi Wi-Fi

Usługi Wi-Fi działają w usłudze systemowej i znajdują się w packages/modules/Wifi/service/. Usługa Wi-Fi komunikuje się z warstwą HAL Wi-Fi za pomocą AIDL.

Dostępne są różne usługi Wi-Fi:

  • Usługa Wi-Fi: podstawowy mechanizm sterowania trybami infrastruktury Wi-Fi (zarówno STA, jak i AP).
  • Usługa Wi-Fi P2P: zarządza trybem Wi-Fi Direct.
  • Usługa Wi-Fi Aware: zarządza trybem Wi-Fi Aware.
  • Usługa Wi-Fi RTT: zarządza funkcją FTM IEEE 802.11mc.

Platforma Wi-Fi obejmuje też samodzielny proces wificond, który znajduje się w lokalizacji system/connectivity/wificond. Proces wificond komunikuje się ze sterownikiem Wi-Fi za pomocą standardowych poleceń nl80211.

Warstwy HAL Wi-Fi

Framework Wi-Fi ma 3 platformy HAL Wi-Fi reprezentowane przez 3 różne interfejsy: Vendor HAL, Supplicant HAL i Hostapd HAL.

Szczegółowe informacje o implementacjach różnych warstw HAL znajdziesz w artykule Warstwa HAL Wi-Fi.