Wifi系统框架
Wifi流程图:
第一部分:Wifi Framework分析
1,1注册WiFiservice
frameworks/base/services/java/com/android/server/SystemServer.java
1,2 wifi service
frameworks/base/services/java/com/android/server/WifiService.java
wifiservice是整个框架的核心部分,application层触发事件后,会调用这个service里面的方法来处理事件,包括加载驱动,开启wpa_supplicant,扫描AP都是调用这个service里面的方法实现的,实际上这些方法最终调用的是wifistatemachine里面的方法去发送消息。由wifistatemachine里面的描述wifi事件的内部类去处理这些消息。在这个类的构造方法中主要就是实例化了一个描述wifi状态机的类WifiStateMachine,重写了广播事件的onReceive方法。
1,3 WifiStateMachine
frameworks/base/wifi/java/android/net/wifi/WifiStateMachine.java
1,4 WifiMonitor
frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java
1,5Wifinative
frameworks/base/wifi/java/android/net/wifi/WifiNativejava
第二部分: JNI 层分析
frameworks/base/core/jni/android_net_wifi_Wifi.cpp.这个文件里面是调用HAL层的wifi.c里面对应方法的接口的集合,提供给frameswork层的类Wi