Android WiFi基础概览

Android WiFi 基础概览

  • 1、WiFi协议
  • 2、Android WLAN 架构
    • 2.1 应用框架
    • 2.2 Wi-Fi 服务
    • 2.3 Wi-Fi HAL
  • 3、相关编译

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325978.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据MySql的表名,自动生成实体类,模仿ORM框架

ORM框架可以根据数据库的表自动生成实体类,以及相应CRUD操作 本文是一个自动生成实体类的工具,用于生成Mysql表对应的实体类。 新建Winform窗体应用程序AutoGenerateForm,框架(.net framework 4.5), 添加对System.Configuration的…

java基于SSM的毕业生就业管理系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业生就业管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信…

更改ERPNEXT源

更改ERPNEXT源 一, 更改源 针对已经安装了erpnext的,需要更改源的情况: 1, 更改为官方默认源, 进入frapp-bench的目录, 然后执行: bench remote-reset-url frappe //重设frappe的源为官方github地址。 bench remote-reset-url…

java基于ssm框架的校园闲置物品交易平台论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园闲置物品交易平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

10分钟设置免费海外远程桌面使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 目录 前言 使用教程 启动 Amazon Lightsail 实例 配置远程桌面 启动远程桌面 使…

【Matplotlib】基础设置之文本公式04

处理文本(数学表达式) 在字符串中使用一对 $$ 符号可以利用 Tex 语法打出数学表达式,而且并不需要预先安装 Tex。在使用时我们通常加上 r 标记表示它是一个原始字符串(raw string) import matplotlib.pyplot as plt …

计算机网络-以太网交换基础

一、网络设备的演变 最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部…

android 分享文件

1.在AndroidManifest.xml 中配置 FileProvider <providerandroid:name"android.support.v4.content.FileProvider"android:authorities"com.example.caliv.ffyy.fileProvider"android:exported"false"android:grantUriPermissions"true…

【leetcode】树总结

本文内容来自于代码随想录 遍历方式 先序&#xff08;DFS&#xff09; 中、左、右 void preorder(TreeNode root) {process(root); // 处理中间节点preorder(root.left);preorder(root.right); }中序&#xff08;DFS&#xff09; 左、中、右 void inorder(TreeNode root)…

2019数据结构----队列真题

(1)允许增加空间&#xff0c;空间可以改变所以是通过链表,链式存储实现的&#xff1b;占用的空间可以重复使用&#xff0c;所以是循环队列。 (2)队空&#xff1a;frontrear;队满&#xff1a;frontrear->next

Spring IOC的四种手动注入方法

手动注入 1.Set方法注入-五种类型的注入1.1 业务对象JavaBean第一步&#xff1a;创建dao包下的UserDao类第二步&#xff1a;属性字段提供set⽅法第三步&#xff1a;配置⽂件的bean标签设置property标签第四步&#xff1a;测试 1.2 常用对象String&#xff08;日期类型&#xff…

国科大图像处理2024速通期末——汇总2017-2019、2023回忆

国科大2023.12.28图像处理0854期末重点 图像处理 王伟强 作业 课件 资料 一、填空 一个阴极射线管它的输入与输出满足 s r 2 sr^{2} sr2&#xff0c;这将使得显示系统产生比希望的效果更暗的图像&#xff0c;此时伽马校正通常在信号进入显示器前被进行预处理&#xff0c;令p…