Android Wi-Fi子系统学习笔记
一、学习目的
了解Android Wi-Fi模组的移植及调试
二、基础知识
1.wifi的两个标志:
(1)无线
(2)基于IEEE802.11协议
2.Android wifi模块的三个作用
(1)连接网络
(2)共享自己,如:屏幕分享
(3)共享自己连接的网络,即开热点给其它终端上网
3.Android系统中三种wifi的工作模式:Station、Wi-Fi direct及SoftAP。分别对应wifi模块的三个作用。
(注:AP就是传统有线网络中的HUB)
4.wifi工作的两个频段:2.4G和5G
5. 802.11a/ac协议 工作在 5GHz
802.11 b/g/n协议 工作在2.4GHz
6.WPS
WPS,即Wi-FiProtected Setup Wi-Fi,密码保护设置。支持WPS的设备要连接支持WPS(带按钮)的AP,无需输入密码,在设备端使用WPS功能,然后按AP的WPS键,即可以自动连接上AP,无需手动输入密码。WPS的初衷是为了快速连接,避免用户输入繁琐的wpa密码,但是pin码又过于简单了。
7.Wi-Fi建立数据连接的流程:
Wi-Fi应用初始化------->打开Wi-Fi-----> 开始扫描AP-------> 显示AP------>配置AP ----->连接AP ----->获取IP地址
8.各功能模块分析
(1)wifi setting
响应用户请求,对wifi进行相关设置。如:打开/关闭wifi、显示AP列表、选择AP进行配置等。
相关代码目录:
packages/apps/Settings/src/com/android/settings/wifi/
(2)wifi/p2p server
Wifi API封装。响应settings 的命令,管理wifi状态机,监听supplicant消息。
相关代码目录:
frameworks/base/wifi/java/android/net/wifi/
frameworks/base/services/java/com/android/server/
(3)wifi jni
Java与C程序交互。
相关代码目录:
frameworks/base/core/jni/android_net_wifi_WifiNative.cpp
(4)hal
加载wifi驱动,转发上层命令给supplicant及接收supplicant执行结果。
相关代码目录:
hardware/libhardware_legary/wifi/
(5)wpa_supplicant 、wifi Protected Access
上层与驱动的中转站,通过socket与上层、驱动交互。另外包括加密认证功能,支持WEP,WPA/WPA2和WAPI无线协议和加密认证。
相关代码目录:
external/wpa_supplicant_8/
(6)Wi-Fi 驱动、WiFi接口驱动
相关代码目录:
\linux-3.4\drivers\net\wireless\
\linux-3.4\drivers\mmc\
\linux-3.4\drviers\usb\
三、Others
1.如果对init.rc文件进行了修改,在编译Android之前,需要执行make installclean命令。如果对Boardconfig.mk文件进行了修改,需要在编译Android之前执行make clean命令。否则,在文件中做的修改不会作用于新的方案。
2.busybox lsusb
查看挂载到当前系统的usb设备。主要用来查看usb接口的wifi是否被系统正常识别。
3.cat insert
查看sdio 接口wifi是否被系统正常识别,手动扫描sdio接口Wi-Fi。
4.netcfg
Linux网络配置命令,用来查看wifi相关的wlan0和p2p0网口是否注册成功,是否分配到IP地址。
5.ifconfig wlan0 up/down
网络端口使能和关闭,主要用于android或linux系统,手动操作网口。
Android Wi-Fi子系统学习笔记相关推荐
- Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)
一. 移动支付: 用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...
- Android日常开发 - FlexboxLayout学习笔记
Android日常开发 - FlexboxLayout学习笔记 Android日常开发使用FlexboxLayout实现流式布局的效果,FlexboxLayout与h5中的flex使用十分相似,都是将 ...
- Android Studio下载搭建学习笔记01
Android Studio下载搭建学习笔记01 下载Android Studio 安装Android Studio 进入安装向导 选择安装组件 选择安装位置 选择文件菜单 等待安装 启动并配置And ...
- [Android]Android P(9) WIFI学习笔记 - HAL (1)
目录 前文回顾 前言 入口 WifiNative 初始化 打开WIFI IWifiChip IWifiCond ISupplicant 前文回顾 WIFI学习笔记 - Framework (1) WI ...
- Android高级终端开发学习笔记(《疯狂Android讲义》第11章-第17章)
Android高级终端开发笔记 2021/6/19 下午 13:34开始 多媒体应用开发 Android支持的音频格式有:MP3 WAV 3GP等.支持的视频格式有MP4 3GP等. 多媒体数据既可以 ...
- Android的LMK机制学习笔记
初识Android的LMK机制 一.文章背景 1.1 LMK中kill进程的关键log(原生系统):![LMK中kill进程的关键log](https://img-blog.csdnimg.cn/78 ...
- Android高级终端开发学习笔记(《疯狂Android讲义》第2章-第10章)
Android疯狂讲义前10章知识点总结 /-------------------------10-31号晚上学习笔记----------------------------/ 在设置了最小支持版本为 ...
- Android开发艺术探索学习笔记 第二章IPC
最近将之前工作做本地的学习笔记上传一下 这里是Android艺术开发探索的前三章内容 文章目录 1. android的多进程模式 2. IPC基础概念介绍 2.1 Serializable 2.2Pa ...
- 我的Android进阶之旅------gt;Android中编解码学习笔记
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
最新文章
- mysql编程的作用_数据库系统概论对学习编程的作用?
- sleep: invalid time interval ‘1s\r’
- Nginx安全说:一剑封喉
- 化工图纸中LISP_必备干货丨石油化工安装工程质量与成本控制研究
- 如何查看 Linux 中所有正在运行的服务
- JSP自定义标签就是如此简单
- C语言经典回溯算法之解决数的组合问题(详解)
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答...
- 数据体系建设的开端,该如何规划平台? 1
- 已解决 selenium.common.exceptions.NoSuchWindowException: Message: no such window
- Linux中KVM虚拟机是什么
- java 读写 ini 配置文件【IDEA】
- 企业微信小程序 windows 使用 vconsole 调试
- 不用找了,这300家公司面试不考算法
- apk开发教程!了解Android架构组件后,构建APP超简单!先收藏了
- Codeforces 1278 B. A and B (思维题)
- 用PanDownload出现无法下载文件,资源分配失败
- 使用Python计算离散随机变量的熵(Entropy)
- 【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证
- 浅谈新GRE考试题型差异
热门文章
- Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题
- 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
- 什么是‘YTowOnt9‘?
- 如何使用cout以全精度打印双精度值?
- 如何指定在Git上执行shell命令时使用的私有SSH密钥?
- JAVA网络IO编程
- 感谢武汉晚报的采访报道:清华硕士回襄阳老家当“威客” 两年赚30万元
- puppet之service管理
- 关于导入My97DatePicker时间插件遇到的问题及解决方案
- 设计模式(创建型模式)——单例模式(Singleton)