android service 构造函数,5.2.2 WifiService构造函数分析

WifiService构造函数的代码如下所示。

**WifiService.java::WifiService构造函数**

~~~

WifiService(Context context) {

mContext = context;

// 从系统属性“wifi.interface”中取出无线网络设备接口名。默认值为“wlan0”

mInterfaceName = SystemProperties.get("wifi.interface", "wlan0");

// 创建一个WifiStateMachine对象,它是WifiService相关模块中的核心

mWifiStateMachine = new WifiStateMachine(mContext, mInterfaceName);

/*

RSSI轮询机制。RSSI为Receive Signal Strength Indication(接收信号强度指示)

的缩写,它反映了无线网络质量的好坏。WPAS支持的RSSI信息包括:接收信号强度、连接速度

(link speed)噪声强度(noise)和频率。在WPAS中,RSSI信息由wpa_signal_info

结构体来表达。

*/

mWifiStateMachine.enableRssiPolling(true);

// 和BatteryStatsService交互。感兴趣的读者可阅读《深入理解Android:卷Ⅱ》5.5.2节

mBatteryStats = BatteryStatsService.getService();

......// 广播事件注册等处理。由于篇幅问题,本章将略去一些重要程度较低的代码

HandlerThread wifiThread = new HandlerThread("WifiService");

wifiThread.start();

// mAsyncServiceHandler用于AsyncChannel,其交互对象来自WifiManager

mAsyncServiceHandler = new AsyncServiceHandler(wifiThread.getLooper());

// mWifiStateMachineHandler也用于AsyncChannel,其交互对象来自WifiStateMachine

mWifiStateMachineHandler = new WifiStateMachineHandler(wifiThread.getLooper());

......// 其他一些工作

}

~~~

WifiService构造函数中主要工作是创建一些核心对象,其中:

* WifiStateMachine是WifiService中的核心,是本章分析的重点对象。

* mAsyncServiceHandler和mWifiStateMachineHandler都和AsyncChannel相关,与它们交互的Handler分别位于WifiManager和WifiStateMachine中。

马上来看最重要的WifiStateMachine。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值