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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CommonJS 和 ES6 Module:一场模块规范的对决(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

质量管控之Bug管理 5大注意事项

Bug管理对于提高软件质量、用户满意度、开发效率等都具有重要的意义。它是确保软件质量和用户体验的关键环节。而Bug管理不善,可能会导致软件质量下降、项目进度延误、用户满意度降低、等不良影响。 因此,正确有效地进行Bug管理非常重要,而进…

Maven各版本的官方下载地址

2023年1月3日,周三上午 官方下载地址: https://dlcdn.apache.org/maven/

oracle语法学习

oracle语法学习 1.备份表 create table bd_psndoc_temp as select * from bd_psndoc2.还原表 drop table bd_psndoc; create table bd_psndoc as select * from bd_psndoc_temp3.查询表的前5条记录 select * from bd_psndoc_temp where rownum<54.从一个表中复制所有的列…

为什么有人说PMP是水证,它的含金量到底怎么样?

在我国大陆&#xff0c;有好多证书被商业化得太重了&#xff0c;甚至演变成了个人或一些公司摇钱的工具。所以有些证书受人吹捧它崛起的快&#xff0c;但是活不长&#xff0c;甚至“夭折”&#xff0c;比如以前微软系列的证书&#xff1b; 而PMP认证从国外引进大陆这么多年了&…

为什么原生广告成为APP广告变现的重要选择?

APP广告变现可以采用的广告形式有多种选择&#xff1a;激励视屏、插屏广告、原生广告。开发者可以在不影响用户体验的情况下制定合适的变现策略。 一、什么是原生广告&#xff1f; 原生广告不同于以往传统广告的效果&#xff0c;用户在观看时就像内容里的某个吸睛片段&#x…

onxxruntime使用cuda以及tensorrt进行加速

1、版本匹配 版本需要匹配&#xff0c;不然运行会报错 2、onnxruntime之tensorrt加速 方式一&#xff1a; OrtTensorRTProviderOptions trt_options{}; trt_options.trt_max_workspace_size 2147483648; trt_options.trt_max_partition_iterations 10; trt_options.trt_m…

学习使用layPage, 多功能JS分页组件/插件的方法

学习使用layPage, 多功能JS分页组件/插件的方法 效果图分页代码 效果图 点击查看链接 分页代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Layui</title><meta name"renderer" content"we…

YOLOv8改进:IoU系列篇 | Shape-IoU结合基于辅助边框的Inner-IoU损失,实现再次创新

🚀🚀🚀本文改进: Shape-IoU结合基于辅助边框的Inner-IoU损失,小目标检测实现涨点,基于辅助边框的优化前提下,更加关注边界框本身的形状和尺度来计算损失 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研…

[UUCTF 2022 新生赛]ez_rce

[UUCTF 2022 新生赛]ez_rce wp 在做这道题时&#xff0c;我参考了这篇博客&#xff1a; https://www.cnblogs.com/bkofyZ/p/17594549.html 认识到了自己的一些不足。 题目代码如下&#xff1a; <?php ## 放弃把&#xff0c;小伙子&#xff0c;你真的不会RCE,何必在此纠…

Unity真机Log工具 SRDebugger使用记录,GM布局管理

SRDebugger 官方文档安装及初始化常用设置选项布局选项快捷键选项高级设置 使用GM工具案例常用特性GM分组排序GM固定页签 官方文档 文档&#xff1a; https://www.stompyrobot.uk/tools/srdebugger/documentation/ 插件地址&#xff1a; https://assetstore.unity.com/package…

NGUI基础-Widget

目录 Widget是什么 Widget组件包含的属性 Pivot Depth Size snap Aspect Free Based on Width Based on Height Widget是什么 在Unity UI系统中&#xff0c;"Widget"是指UI元素的基类&#xff0c;它为UI元素提供了位置、大小和锚点等基本属性。通过使用&qu…

【AI视野·今日Robot 机器人论文速览 第六十六期】Tue, 31 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 31 Oct 2023 Totally 39 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers DEFT: Dexterous Fine-Tuning for Real-World Hand Policies Authors Aditya Kannan, Kenneth Shaw, Shikhar Bahl, Pragna Ma…

STM32F4 IAP升级 Bootloader程序+上位机下载程序源码

目录 一、硬件设计 二、软件设计 三、上位机设计 四、IAP说明 五、下载验证 资料下载地址&#xff1a;STM32F4 IAP升级 Bootloader程序上位机下载程序源码 一、硬件设计 升级下载程序采用外部硬件触发的方式。 PB-20M4硬件板 预留一个IO口处理代码下载及更新的功能。 功…

vue-cli配置自定义打包命令

vue-cli配置自定义打包命令 一、目录结构二、.env.development三、.env.production四、 对应打包命令 一、目录结构 在vue项目中&#xff0c;env是全局配置文件&#xff0c;可以存储不同环境下的变量。 使用vue-cli搭建项目&#xff0c;默认会在根目录创建一个.env文件 如果需…

Efficient Classification of Very Large Images with Tiny Objects(CVPR2022)

文章目录 基本参数设置Colon Cancer10折交叉验证&#xff08;不带对比学习N10&#xff09;10折交叉验证&#xff08;带对比学习N10&#xff09;N5N50λ1.0λ0best 基本参数设置 dataset&#xff1a;colon cancer TenCrossValidation&#xff1a;True optimizer&#xff1a;ada…

聊聊spring事务12种场景,太坑了

前言 对于从事java开发工作的同学来说&#xff0c;spring的事务肯定再熟悉不过了。 在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同时写入多张表的数据。为了保证操作的原子性&#xff08;要么同时成功&#xff0c;要么同时失败&#xff09;&#xff0c;避免数…

基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时安全背心目标检测系统可用于日常生活中检测与定位安全背心&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训…

【python入门】day19:学生管理系统需求分析、系统设计、主函数设计

需求分析 应具备功能—— 添加学生及成绩信息&#xff1b; 将学生信息保存到文件中&#xff1b; 修改和删除学生信息&#xff1b; 查询学生信息&#xff1b; 根据学生成绩进行排序&#xff1b; 统计学生的总分 系统设计 1.录入学生信息模块 2.查找 3.删除 4.修改 5.成绩排名…

shell 获取主机IP 脚本中使用IP 打印出来IP

目录 查看ip查看网关只查看ens33过滤ip拿到网卡名字对内容进行切片获取第一网卡IP &#xff08;head -1 表示第一个网卡&#xff09;脚本中打印IP 查看ip ip a 查看网关 ip r只查看ens33 ip a show dev ens33过滤ip ip a | grep -oE [0-9]\.[0-9]\.[0-9]\.[0-9] 拿到网卡名…