概览

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 堆栈的常规结构。

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