Android Wifi模块分析(二)
Android Wifi模块分析(二)
本文来自:http://hi.baidu.com/anly_jun/blog/item/6bfb3e45256c1b2dcefca375.html
2010-02-04 10:51
二:Wifi模块的初始化:: 在 SystemServer 启动的时候,会生成一个ConnectivityService 的实例, try { Log.i(TAG, "Starting Connectivity Service."); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, new ConnectivityService(context)); } catch (Throwable e) { Log.e(TAG, "Failure starting Connectivity Service", e); }
ConnectivityService 的构造函数会创建WifiService,
if (DBG) Log.v(TAG, "Starting Wifi Service."); mWifiStateTracker = new WifiStateTracker(context, handler); WifiService wifiService = new WifiService(context, mWifiStateTracker); ServiceManager.addService(Context.WIFI_SERVICE, wifiService); WifiStateTracker 会创建WifiMonitor 接收来自底层的事件,WifiService 和WifiMonitor 是整 个模块的核心。WifiService 负责启动关闭wpa_supplicant、启动关闭WifiMonitor 监视线程 和把命令下发给wpa_supplicant,而WifiMonitor 则负责从wpa_supplicant 接收事件通知。
具体流程图如下: 
|
?