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.
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.