Android 提供預設的 Android 架構實作項目,支援各種 Wi-Fi 協定和模式,包括:
- Wi-Fi 基礎架構 (STA)
- 透過連線共用或僅限本機模式使用 Wi-Fi 無線基地台 (軟體存取點)
- Wi-Fi Direct (點對點)
- Wi-Fi Aware (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
應用程式會透過 Binder 直接與各種 Wi-Fi 服務通訊。Wi-Fi 服務會在系統服務中執行,並透過提供的 HIDL 和 AIDL 介面與 HAL 通訊。這張圖顯示 Android Wi-Fi 堆疊的一般結構。
圖 1. Android Wi-Fi 架構
應用程式架構
應用程式程式碼位於應用程式架構層級,可使用各種 android.net.wifi
API 與 Wi-Fi 架構和硬體互動。在內部,這段程式碼會透過 Binder IPC 機制呼叫 Wi-Fi 程序。
Wi-Fi 服務
Wi-Fi 服務會在系統服務中執行,且位於 packages/modules/Wifi/service/
。Wi-Fi 服務會透過 AIDL 與 Wi-Fi HAL 通訊。
Wi-Fi 服務分為以下幾種:
- Wi-Fi 服務:控制 Wi-Fi 基礎架構模式 (STA 和 AP) 的主要機制。
- Wi-Fi P2P 服務:管理 Wi-Fi Direct 模式。
- Wi-Fi Aware 服務:管理 Wi-Fi Aware 模式。
- Wi-Fi RTT 服務:管理 IEEE 802.11mc FTM 功能。
Wi-Fi 架構也包含獨立程序 wificond,位於 system/connectivity/wificond
。wificond 程序會透過標準 nl80211
指令與 Wi-Fi 驅動程式通訊。
Wi-Fi HAL
Wi-Fi 架構有三個 Wi-Fi HAL 介面,分別由三個不同的介面代表:供應商 HAL、Supplicant HAL 和 Hostapd HAL。
如要進一步瞭解各種 HAL 的實作方式,請參閱「Wi-Fi HAL」。