Android 提供默认 Android 框架实现,其中包括对各种 WLAN 协议和模式的支持,这些协议和模式包括:
- WLAN 基础架构 (STA)
- 网络共享模式或仅限本地模式下的 WLAN 热点 (Soft AP)
- WLAN 直连(点对点)
- WLAN 感知 (NAN)
- WLAN RTT (IEEE 802.11mc FTM)
使用 Wi-Fi 服务的应用通过 Binder 直接与各种 Wi-Fi 服务进行通信。Wi-Fi 服务在系统服务中运行,并通过提供的 HIDL 和 AIDL 接口与 HAL 进行通信。下图显示了 Android Wi-Fi 堆栈的常规结构。
图 1. Android WLAN 架构
应用框架
应用代码位于应用框架级别,它使用各种 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 服务有很多种:
- WLAN 服务:用于控制 WLAN 基础架构模式(包括 STA 和 AP)的主要机制。
- WLAN 点对点服务:管理 WLAN 直连模式。
- WLAN 感知服务:管理 WLAN 感知模式。
- 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 surface,分别由三个不同的接口表示:供应商 HAL、客户端 HAL 和 Hostapd HAL。
如需详细了解各种 HAL 的实现,请参阅 Wi-Fi HAL。