Android WiFi 基本框架
本篇比较简单,就是学习熟悉Wifi基本框架和Wifi源码路径。
目录
WIFI模块框架图:
Wifi系统源码结构
应用代码
Framework层
HIDL接口
WPA适配层(硬件抽象层 HAL)
wpa_supplicant层
kernel层
WIFI模块框架图:
Wifi系统源码结构
应用代码
源码路径:
- packages/apps/Settings/src/com/android/settings/wifi/
主要类:
- WifiSettings.java Wifi设置界面类
- WifiEnabler.java Wifi开关逻辑类
- WifiDialog.java Wifi提示框类
- WifiInfo.java Wifi配置信息类
Framework层
源码路径:
- frameworks/base/wifi/Java/android/net/wifi/ (wifi外部接口相关类:WifiManager.java、WifiInfo.java)
- frameworks/opt/net/wifi/service/java/com/android/server/wifi/(wifi服务相关类:WifiServicex.java、WifiNative.java)
主要类:
- WifiManager.java:Wifi外部接口管理类,应用通过WifiManager来操作Wifi的各项功能。
- WifiService.java:Wifi功能的总入口,负责Wifi功能的核心业务。处理Wifi加载、扫描、链接、断开等命令,以及Wifi底层上报的事件。
- WifiServiceImpl.java:WifiService的实现类,将请求交给对应的处理者处理,比如WifiStateMachine。
- WifiController.java:它维护的是wifi开关状态,wifi热点开关状态。
- WifiStateMachine.java:一个复杂的状态机,它维护Wifi的启动、扫描、连接、断开等多个状态。
- WifiStateTracker.java:除了负责WiFi的电源管理模式等功能外,其核心是WifiMonitor所实现的事件轮询机制,以及消息处理函数handleMessage()。
- WifiMonitor.java:接收来自Wpa_supplicant的事件,并将这些信息进行分类再交予StateMachine处理。
- WifiNative.java:调用HIDL接口实现WIFI相关功能。
WifiService 和 WifiMonitor 是整个模块的核心。也就是说WifiService负责wifi整个流程的控制,而WifiMonitor负责监视底层的事件。
HIDL接口
源码路径:
- /hardware/interfaces/wifi
WPA适配层(硬件抽象层 HAL)
源码路径:
- frameworks/opt/net/wifi/libwifi_hal
wpa_supplicant层
wpa_supplicant是一个开源项目,负责完成认证相关的登录、加密等工作。 该层是Wifi FrameWork层的基石,也叫Wifi服务层。
源码路径:
- external/wpa_supplicant_8
kernel层
Wifi的内核驱动程序。
Android WiFi 基本框架相关推荐
- android wifi p2p框架,7.2.1 P2P架构
P2P架构中定义了三个组件,笔者将其称之为一个设备,两种角色.这三个组件分别是: * P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备. * P2P Group Ow ...
- Android wifi探究一:初步认识wpa_supplicant与wifi框架梳理
http://blog.csdn.net/u011913612/article/details/52671436 平时和wifi打交道还算比较多吧,wifi出了问题就只能找大神解决,这是件很令人伤感的 ...
- Android WIFI框架分析(1)
趁做Android WIFI驱动移植,对Android WIFI框架做了深刻的分析,并做此文档共同学习. 对上层WIFI的应用,基本流程为:(1)WIFI初始化 (2)Wifi启动 (3) ...
- [转载]Android wifi探究一:初步认识wpa_supplicant与wifi框架梳理
平时和wifi打交道还算比较多吧,wifi出了问题就只能找大神解决,这是件很令人伤感的事情.所以就想自己分析下android源码中wifi的框架,以后wifi出了问题,自己也能尝试的解一解.分析过程必 ...
- android wifi 框架图,android wifi框架
---恢复内容开始--- frameworks/base/services/java/com/android/server/wifi 中的ReadMe文件 WifiService: Implement ...
- Android Wifi移植
我用的是 Ralink 的网卡,所以 wifi 网卡的名字是 ra0, 在网上看了一些文章,要改很多地方. 不就是个网卡名字问题吗? 我有 驱动源码, 就直接在源码里把名字改成 mlan0 就得了. ...
- android wifi 移植记录
http://blog.csdn.net/pottichu/article/details/5691896 我用的是 Ralink 的网卡,所以 wifi 网卡的名字是 ra0, 在网上看了一些文章 ...
- 2018年android常用的框架介绍
转载地址:http://blog.csdn.net/RuingMan/article/details/73546718 http://www.cnblogs.com/jincheng-yangchao ...
- android WIFI学习总结
转自 http://blog.csdn.net/ldinvicible/article/details/11909411 1 WLAN技术 WLAN是英文WirelessLAN的缩写,就 ...
最新文章
- Qt实现主界面圆角化
- 1.arm的linux系统搭建
- Https 客户端与服务器交互过程梳理(转)
- Android SDCard Mount 流程分析(一)
- C++ 变量的定义位置
- 软件项目管理0717:开发一定要了解客户
- (java)短时间批量访问数据库(oracle)小结
- SPOJ - SUBLEX 【后缀自动机】
- “头脑王者”爆红被封,微信小程序迎来蛮荒期
- DZY的根(思维水)
- vue前端项目打包并且在服务器上部署过程
- 四种Java跨域配置
- 二元线性回归最小二乘法公式推导
- 【CCF CSP】201903-1小中大
- 基于SOA的设备智能维护系统架构设计及实现
- 罗永浩又双叒叕diss苹果了
- POSCMS 支付设置
- modbus模拟设备工具ModRSsim的使用
- 怎样查看电脑中的开机启动项?简单方法!如何禁止电脑开机启动的选项?
- 5分钟弄懂语音识别技术原理
热门文章
- 独立开发变现周刊(第 9 期):创造者领域融资13亿美元,开发者有机会吗?
- 让婴儿早一天活动起来
- 静态时序分析—时钟偏斜(Clock Skew:Global Skew与Local Skew)
- 未来,外卖行业将实现“共享餐盒”?
- 零售行业如何开展私域流量运营?试试快鲸scrm
- unity 畸变_摄像机成像、畸变模型
- stm32毕设分享 人体定位智能调速风扇系统
- 卸载JDK出现windows Installer程序包有问题及解决办法
- 全国职业院校技能大赛网络建设与运维赛项赛题(三)
- css中indent是什么意思,CSS text-indent用法及代码示例