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)
  • Aware 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ą Bindera. Usługi Wi-Fi działają w usłudze systemowej i komunikują się z HAL przez podane interfejsy HIDL i AIDL. Ten diagram pokazuje ogólną strukturę pakietu Wi-Fi na Androida.

Architektura Wi-Fi

Rysunek 1. Architektura Wi-Fi w Androidzie

Struktura aplikacji

Na poziomie platformy aplikacji znajduje się kod aplikacji, który korzysta z różnych interfejsów API android.net.wifi do interakcji z platformą i sprzętem Wi-Fi. 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 ramach usługi systemowej i znajdują się w katalogu packages/modules/Wifi/service/. Usługa Wi-Fi komunikuje się z interfejsem HAL Wi-Fi przez AIDL.

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

  • Usługa Wi-Fi: główny mechanizm do kontrolowania trybów 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 zawiera też samodzielny proces wificond, który znajduje się w system/connectivity/wificond. Proces wificond komunikuje się ze sterownikiem Wi-Fi za pomocą standardowych poleceń nl80211.

Interfejsy HAL Wi-Fi

Platforma Wi-Fi ma 3 interfejsy HAL: Vendor HAL, Supplicant HAL i Hostapd HAL.

Szczegółowe informacje o wdrożeniach różnych interfejsów HAL znajdziesz w artykule Interfejs HAL Wi-Fi.