Android 提供了默认的 Android 框架实现,其中包括对各种无线网络协议和模式的支持,包括
- 无线网络基础架构 (STA)
- 无线网络热点 (Soft AP),采用网络共享模式或仅本地模式
- 无线网络直连 (p2p)
- 无线网络感知 (NAN)
- 无线网络 RTT (IEEE 802.11mc FTM)
使用无线网络服务的应用直接通过 Binder 与各种无线网络服务进行通信。无线网络服务在系统服务中运行,并通过提供的 HIDL 和 AIDL 接口与 HAL 进行通信。下图展示了 Android 无线网络堆栈的总体结构。
图 1. Android 无线网络架构
应用框架
在应用框架层,应用代码使用各种 android.net.wifi API 与无线网络框架和硬件进行互动。在内部,此代码通过 Binder IPC 机制调用无线网络进程。
无线网络服务
无线网络服务在系统服务中运行,位于 packages/modules/Wifi/service/
中。无线网络服务通过 AIDL 与无线网络 HAL 进行通信。
有各种无线网络服务
- 无线网络服务:用于控制无线网络基础架构模式(STA 和 AP)的主要机制。
- 无线网络 P2P 服务:管理无线网络直连模式。
- 无线网络感知服务:管理无线网络感知模式。
- 无线网络 RTT 服务:管理 IEEE 802.11mc FTM 功能。
无线网络框架还包括一个独立的进程 wificond,它位于 system/connectivity/wificond
。wificond 进程通过标准 nl80211
命令与无线网络驱动程序进行通信。
无线网络 HAL
无线网络框架具有三个无线网络 HAL 表面,分别由三个不同的接口表示:供应商 HAL、Supplicant HAL 和 Hostapd HAL。
如需详细了解各种 HAL 的实现,请参阅无线网络 HAL。