本文为读书笔记,整理自网络文献和源码
1、wifi简介
1.1 物理简介
wlan:无线局域网,802.11协议
wifi主要物理组件:
工作站(station)、接入点AP(access point)、无线媒介(wirelessmedium)、分布式系统(distribution system)
Wifi可工作在station模式和AP模式。
station模式的结构:
Ap模式:
最基本的不同是不通过wpa_supplicant而是Framework层直接通过netddaemon来控制驱动[1]
1.2android中wifi框架和相关的源文件位置:
WIFI Settings应用程序位于
packages/apps/Settings/src/com/android/settings/wifi/
涉及到的文件:
WifiSettings.java
frameworks部分:
frameworks/base/services/java/com/android/server/
frameworks/base/wifi/java/android/net/wifi/
涉及到的文件有:
SystemServer.java
WifiManager.java
WifiService.java
WifiStateMachine.java
Wifinative.java
JNI部分:
frameworks/base/core/jni/android_net_wifi_Wifi.cpp
wifi管理库(HAL)
hardware/libhardware_legary/wifi/
涉及到的文件:
Wifi.c
wifi用户空间的程序和库(wpa_supplicant)
external/wpa_supplicant_8/
生成守护进程wpa_supplicant
WifiStateMachine 会创建WifiMonitor接收来自底层的事件,WifiService 和WifiMonitor 是整个模块的核心。WifiService 负责启动关闭wpa_supplicant、启动关闭WifiMonitor 监视线程和把命令下发给wpa_supplicant,而WifiMonitor 则负责从wpa_supplicant 接收事件通知。[2]
参考文献:
[1] http://blog.csdn.net/z642010820/article/details/7341476
[2]http://blog.csdn.net/ylyuanlu/article/details/7711396