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.mzph.cn/news/601642.shtml

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

相关文章

科锐16位汇编学习笔记 04 乘除和移位指令

乘法和除法指令用的不多,因为效率很低 比较指令CMP (compare) •格式:CMP OPD,OPS •功能:(OPD) — (OPS),跟减法指令很像,但是不存结果 •说明:目的操作数减去源操作数,然后根据结果设置标志位,但该结…

作业三详解

作业3: 在作业1的基础上,整合修改、删除功能,可实现如下功能 1.进入新增页面,页面填入新增数据,提交表单,然后跳转到查询列表页面,列表页面显示所有记录(多一条新增的数据) 2.进入修改增页面,页面填入修改数据,提交表单,然后跳转到查询列表页面,列表页面显示所有…

Zoho SalesIQ:构建客户服务知识库的实用工具与指南

客服人员每天都有很多事情要做,包括在线聊天、音频通话、屏幕共享和发送电子邮件。为什么要将搜索常用信息添加到他们列表中呢?因为客户在遇到问题的同时想快速解决问题。所以,我们要使用Zoho SalesIQ客服系统构建客户服务知识库。 一、什么…

鸿蒙开发之拖拽事件

一、拖拽涉及的方法 Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)//拖拽开始.onDragStart((event: DragEvent) > {console.log(drag event onDragStartevent.getX())})//拖拽进入组件范围,需要监听onDrop配合.onDragEnter((event: DragEvent) …

【MongoDB】MongoDB查询语句find的使用,和提高查询速度的游标的使用,非常详细!!!

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:MongoDB数据库 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前…

联合体类型和枚举类型

联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。 所以给联合体其中⼀个成员赋值,其他成员的值也跟着…

Postman 并发测试入门指南:如何模拟用户并发请求?

背景介绍 最近,我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口: 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时,我们不可避免地…

Vue3集成scss实现清除浏览器默认样式

1.首先去npm官网找到对应的reset.scss文件,复制内容在本地src下style建一个一模一样的文件,内容复制进去npm | Home 2.在style文件夹下再建一个index.scss文件,在它里边引入刚刚建好的reset.scss文件,如下 import ./reset.scss; …

我用 midjourney 创作的那些好看的图片

下面这些是个人的midjourney v5的关键词,各种类型都有 抽象画 One piece of original artwork from 1998 , in the style of confucian ideology, pop art-inspired collages, recycled material murals, meticulous military scenes, close-up intensity, grocer…

基于OpenCV的透视变换

基础概念 透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。 原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下&#…

八大算法排序@快速排序、递归版本一(C语言版本)

目录 快速排序版本一概念算法思想一二三 快排步骤代码实现时间复杂度空间复杂度特性总结 快速排序版本一 概念 快速排序(Quicksort)是一种高效的排序算法,它是由英国计算机科学家 Tony Hoare 在1960年提出的。快速排序是基于分治&#xff08…

C++中string的库函数

山再高,往上攀,总能登顶! 路再长,走下去,定能到达! 🎥烟雨长虹,孤鹜齐飞的个人主页 🔥个人专栏c 期待小伙伴们的支持与关注!!! 目录 前…

Pandas DataFrame中将True/False映射到1/0

在本文中,我们将看到如何在Pandas DataFrame中将True/False映射到1/0。True/False到1/0的转换在执行计算时至关重要,并且可以轻松分析数据。 1. replace方法 在这个例子中,我们使用Pandas replace()方法将True/False映射到1/0。在这里&…

【Spark精讲】记一个SparkSQL引擎层面的优化:SortMergeJoinExec

SparkSQL的Join执行流程 如下图所示,在分析不同类型的Join具体执行之前,先介绍Join执行的基本框架,框架中的一些概念和定义是在不同的SQL场景中使用的。 在Spark SQL中Join的实现都基于一个基本的流程,根据角色的不同&#xff0…

信息论与编码期末复习——计算题+基础汇总(二)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

【计算机毕业设计】SSM网上外卖订餐管理系统

项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录; 普通用户主要功能包括: 登录注册,查看商品,提交订单,然后留言,查看购物…

DS|静态查找

题目一:DS静态查找 -- 顺序查找 题目描述: 给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始 要求使用带哨兵的顺序查找算法 输入要求: 第一行输入n,表示队列有n个数据 第二行输入…

CAN通信的基本原理与实现方法

一. CAN协议概念 1.1 CAN 协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下&…

手拉手springboot3整合mybatis-plus多数据源

环境介绍 技术栈 springbootmybatis-plusmysql 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 dynamic-datasource 3.6.1 mybatis-plus 3.5.3.2 加入依赖 <dependency><groupId>com.baomidou</groupId><arti…

苹果macOS 14.3开发者预览版Beta 2发布 修复API会意外失败的问题

1 月 4 日消息&#xff0c;苹果向 Mac 电脑用户推送了 macOS 14.3 开发者预览版 Beta 2 更新&#xff08;内部版本号&#xff1a;23D5043d&#xff09;&#xff0c;本次更新距离上次发布隔了 22 天。 macOS Sonoma 14.3 Beta 2 主要以修复 BUG、提高安全性为主。根据苹果官方更…