Android WiFi基础概览


android13-release


1、WiFi协议

Wi-Fi(无线通信技术)_百度百科

2.4GHz 频段支持以下标准(802.11b/g/n/ax),5GHz 频段支持以下标准(802.11a/n/ac/ax),由此可见,802.11n/ax 同时工作在 2.4GHz 和 5GHz 频段,所以这两个标准是兼容双频工作。

WiFi 版本WiFi 标准发布时间最高速率工作频段
WiFi 7IEEE 802.11be2022年30Gbps2.4GHz,5GHz,6GHz
WiFi 6IEEE 802.11ax2019 年11Gbps2.4GHz 或 5GHz
WiFi 5IEEE 802.11ac2014 年1Gbps5GHz
WiFi 4IEEE 802.11n2009 年600Mbps2.4GHz 或 5GHz
WiFi 3IEEE 802.11g2003 年54Mbps2.4GHz
WiFi 2IEEE 802.11b1999 年11Mbps2.4GHz
WiFi 1IEEE 802.11a1999 年54Mbps5GHz
WiFi 0IEEE 802.111997 年2Mbps2.4GHz
2.4GHz(802.11b/g/n/ax),5GHz(802.11a/n/ac/ax)

2、Android WLAN 架构

在这里插入图片描述

2.1 应用框架

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

SystemUI:
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiSignalController.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiIcons.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiState.kt
frameworks/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java

Settings:
packages/apps/Settings/src/com/android/settings/network/NetworkProviderSettings.java
packages/apps/Settings/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
frameworks/opt/net/wifi/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
frameworks/opt/net/wifi/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
frameworks/opt/net/wifi/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java

2.2 Wi-Fi 服务

Wi-Fi 服务在系统服务中运行,这类服务位于 packages/modules/Wifi/service/ ( frameworks/opt/net/wifi ) 中。Wi-Fi 服务通过 HIDLWi-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 驱动程序进行通信。

在这里插入图片描述

2.3 Wi-Fi HAL

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

  • 供应商 HAL: Android 专用命令的 HAL surface。HIDL 文件位于 hardware/interfaces/wifi/1.x 中。
  • 客户端 HAL: wpa_supplicant 的 HAL surface。HIDL 文件位于 hardware/interfaces/wifi/supplicant/1.x 中,AIDL 文件位于 hardware/interfaces/supplicant/aidl 中。
  • Hostapd HAL: hostapd 的 HAL surface。HIDL 文件位于 hardware/interfaces/wifi/hostapd/1.x 中,AIDL 文件位于 hardware/interfaces/wifi/hostapd/aidl 中。

在这里插入图片描述

3、相关编译

hardware/interfaces/wifi

  1. android.hardware.wifi@1.0-service
    hardware/interfaces/wifi/1.6/default/android.hardware.wifi@1.0-service.rc
    hardware/interfaces/wifi/1.6/default/Android.bp
    hardware/interfaces/wifi/1.6/Android.bp
  2. wpa_supplicant
    hardware/interfaces/wifi/supplicant/1.4/Android.bp
    hardware/interfaces/wifi/supplicant/aidl/Android.bp
  3. hostapd
    hardware/interfaces/wifi/hostapd/1.3/Android.bp
    hardware/interfaces/wifi/hostapd/aidl/Android.bp

packages/modules/Wifi

  1. service-wifi : packages/modules/Wifi/service/Android.bp
  2. framework-wifi : packages/modules/Wifi/framework/Android.bp
    在这里插入图片描述

frameworks/opt/net/wifi

  1. WifiTrackerLib : frameworks/opt/net/wifi/libs/WifiTrackerLib/Android.bp ( SystemUI/Settings编译应用导入该包 )

system/connectivity/wificond

  1. wificond : system/connectivity/wificond/wificond.rc
    system/connectivity/wificond/Android.bp

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhBruce

佛系随缘,共同探讨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值