概览

Android 提供默认 Android 框架实现,其中包括对各种 WLAN 协议和模式的支持,这些协议和模式包括:

  • WLAN 基础架构 (STA)
  • 网络共享模式或仅限本地模式下的 WLAN 热点 (Soft AP)
  • WLAN 直连(点对点)
  • WLAN 感知 (NAN)
  • WLAN RTT (IEEE 802.11mc FTM)

使用 WLAN 服务的应用通过 Binder 直接与各种 WLAN 服务进行通信。WLAN 服务在系统服务中运行,并通过 HIDL 与 HAL 进行通信。下图显示了 Android WLAN 堆栈的常规结构。

WLAN 架构

图 1. Android WLAN 架构

应用框架

应用代码位于应用框架级别,它使用各种 android.net.wifi API 与 WLAN 框架和硬件进行交互。此代码在内部通过 Binder IPC 机制调用 WLAN 进程。

WLAN 服务

WLAN 服务在系统服务中运行,这类服务位于 frameworks/opt/net/wifi 中。WLAN 服务通过 HIDL 与 WLAN HAL 进行通信。

WLAN 服务有很多种:

  • WLAN 服务:用于控制 WLAN 基础架构模式(包括 STA 和 AP)的主要机制。
  • WLAN 点对点服务:管理 WLAN 直连模式。
  • WLAN 感知服务:管理 WLAN 感知模式。
  • WLAN RTT 服务:管理 IEEE 802.11mc FTM 功能。

此外,WLAN 框架还包括一个独立的进程 wificond,此进程位于 system/connectivity/wificond 中。wificond 进程通过标准 nl80211 命令与 WLAN 驱动程序进行通信。

WLAN HAL

WLAN 框架具有三个 WLAN HAL 表面,分别由三个不同的 HIDL 软件包表示:供应商 HAL、客户端 HAL 和 Hostapd HAL。

要详细了解各种 HAL 的实现,请参阅 WLAN HAL