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