一、学习目的

了解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子系统学习笔记相关推荐

  1. Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)

    一. 移动支付:       用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...

  2. Android日常开发 - FlexboxLayout学习笔记

    Android日常开发 - FlexboxLayout学习笔记 Android日常开发使用FlexboxLayout实现流式布局的效果,FlexboxLayout与h5中的flex使用十分相似,都是将 ...

  3. Android Studio下载搭建学习笔记01

    Android Studio下载搭建学习笔记01 下载Android Studio 安装Android Studio 进入安装向导 选择安装组件 选择安装位置 选择文件菜单 等待安装 启动并配置And ...

  4. [Android]Android P(9) WIFI学习笔记 - HAL (1)

    目录 前文回顾 前言 入口 WifiNative 初始化 打开WIFI IWifiChip IWifiCond ISupplicant 前文回顾 WIFI学习笔记 - Framework (1) WI ...

  5. Android高级终端开发学习笔记(《疯狂Android讲义》第11章-第17章)

    Android高级终端开发笔记 2021/6/19 下午 13:34开始 多媒体应用开发 Android支持的音频格式有:MP3 WAV 3GP等.支持的视频格式有MP4 3GP等. 多媒体数据既可以 ...

  6. Android的LMK机制学习笔记

    初识Android的LMK机制 一.文章背景 1.1 LMK中kill进程的关键log(原生系统):![LMK中kill进程的关键log](https://img-blog.csdnimg.cn/78 ...

  7. Android高级终端开发学习笔记(《疯狂Android讲义》第2章-第10章)

    Android疯狂讲义前10章知识点总结 /-------------------------10-31号晚上学习笔记----------------------------/ 在设置了最小支持版本为 ...

  8. Android开发艺术探索学习笔记 第二章IPC

    最近将之前工作做本地的学习笔记上传一下 这里是Android艺术开发探索的前三章内容 文章目录 1. android的多进程模式 2. IPC基础概念介绍 2.1 Serializable 2.2Pa ...

  9. 我的Android进阶之旅------gt;Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

最新文章

  1. mysql编程的作用_数据库系统概论对学习编程的作用?
  2. sleep: invalid time interval ‘1s\r’
  3. Nginx安全说:一剑封喉
  4. 化工图纸中LISP_必备干货丨石油化工安装工程质量与成本控制研究
  5. 如何查看 Linux 中所有正在运行的服务
  6. JSP自定义标签就是如此简单
  7. C语言经典回溯算法之解决数的组合问题(详解)
  8. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答...
  9. 数据体系建设的开端,该如何规划平台? 1
  10. 已解决 selenium.common.exceptions.NoSuchWindowException: Message: no such window
  11. Linux中KVM虚拟机是什么
  12. java 读写 ini 配置文件【IDEA】
  13. 企业微信小程序 windows 使用 vconsole 调试
  14. 不用找了,这300家公司面试不考算法
  15. apk开发教程!了解Android架构组件后,构建APP超简单!先收藏了
  16. Codeforces 1278 B. A and B (思维题)
  17. 用PanDownload出现无法下载文件,资源分配失败
  18. 使用Python计算离散随机变量的熵(Entropy)
  19. 【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证
  20. 浅谈新GRE考试题型差异

热门文章

  1. Ubuntu16.04安装Chrome浏览器及解决root不能打开的问题
  2. 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
  3. 什么是‘YTowOnt9‘?
  4. 如何使用cout以全精度打印双精度值?
  5. 如何指定在Git上执行shell命令时使用的私有SSH密钥?
  6. JAVA网络IO编程
  7. 感谢武汉晚报的采访报道:清华硕士回襄阳老家当“威客” 两年赚30万元
  8. puppet之service管理
  9. 关于导入My97DatePicker时间插件遇到的问题及解决方案
  10. 设计模式(创建型模式)——单例模式(Singleton)