《android wifi模块测试》由会员分享,可在线阅读,更多相关《android wifi模块测试(11页珍藏版)》请在金锄头文库上搜索。
1、WIFI 测试可分为网络测试,功能测试,性能测试测试可分为网络测试,功能测试,性能测试1、网络测试:比如进入 WIFI 网络覆盖区,搜网,网络信号的强弱,是否符合相应的网络规范等等:2、功能测试:我们还测使用 wifi 是能否下载一些图片,铃声.,下载文件的过程中挂起唤醒,文件能否正常下载,能否登录 msn 等。还有就是冲突测试,使用 wifi 中能否呼出电话,能否收发彩信。3、性能测试:多次打开关闭,多次切换主要有网络切换和和搜网的速度,下载和上传的速度等等本机本机 IP例如本机 IP 地址为:172.168.200.2。则执行命令 Ping 172.168.200.2。如果网卡安装配置没有
2、问题,则应有类似下列显示:Reply from 172.168.200.2 bytes=32 time list = mWifiManager.getScanResults();对每一个扫描返回的 AP,WifiLayer 会调用 WifiSettings 的 onAccessPointSetChanged 函数,从而最终把该 AP 加到 GUI 显示列表中。 【配置 AP 参数】 当用户在 WifiSettings 界面上选择了一个 AP 后,会显示配置 AP 参数的一个对话框。 showAccessPointDialog(state, AccessPointDialog.MODE_INFO
3、); 【连接】 当用户在 AcessPointDialog 中选择好加密方式和输入密钥之后,再点击连接按钮,Android 就 会去连接这个 AP。 1 WifiLayer 会先检测这个 AP 是不是之前被配置过,这个是通过向 wpa_supplicant 发送 LIST_NETWORK 命令并且比较返回值来实现的, /Need WifiConfiguration for the AP WifiConfiguration config = findConfiguredNetwork(state); 如果 wpa_supplicant 没有这个 AP 的配置信息,则会向 wpa_supplica
4、nt 发送 ADD_NETWORK 命令来添加该 AP 2 ADD_NETWORK 命 令 会 返 回 一 个 ID,WifiLayer 再 用 这 个 返 回 的 ID 作 为 参数向 wpa_supplicant 发送 ENABLE_NETWORK 命令,从而让 wpa_supplicant 去连接该 AP。 【配置 IP 地址】 1 当 wpa_supplicant 成功连接上 AP 之后,它会向控制通道发送事件通知连接上 AP 了,从而 wifi_wait_for_event 函数会接收到该事件,由此 WifiMonitor 中的 MonitorThread 会被执行来 出来这个事件
5、2 WifiMonitor 再调用 WifiStateTracker 的 notifyStateChange,WifiStateTracker 则接着会往自 身发送 EVENT_DHCP_START 消息来启动 DHCP 去获取 IP 地址 3 然后再广播发送 NETWORK_STATE_CHANGED_ACTION 这个 Intent 4 WifiLayer 注册了接收 NETWORK_STATE_CHANGED_ACTION 这个 Intent,所以它的相 关处理函数 handleNetworkStateChanged 会被调用,当 DHCP 拿到 IP 地址之后,会再发送 EVENT_D
6、HCP_SUCCEEDED 消息 5 WifiLayer 处 理 EVENT_DHCP_SUCCEEDED 消 息,会 再 次 广 播 发 送 至此为止,整个连接过程完成 2. wpa_supplicant Android 平台使用的 WiFi 控制框架是基于大名鼎鼎的 wpa_supplicant,它是一个安全中间件,为各种无线网卡提供统一的安全机制,如下图所示:对应上述结构,基于 Android 的手机中的 WiFi 控制分为三大组件: 1)客户端程序,包括 wpa_cli 命令行或 java 图形界面程序,通过 unix 本地 socket 与 wpa_supplicant daemon
7、 服务通信,发送命令并接收结果; 2)wpa_supplicant daemon 服务,对应上述中间部分,功能是“上传下达”。所有客户端通过 它控制硬件网卡,通过发送字符串命令控制是否扫描 AP,提取扫描结果和是否关联 AP 等 操作,同时将驱动的执行状态发送给用户。该服务是设计支持多种无线网卡芯片,因此各 个厂商共同提供了一个通用接口给 wpa_supplicant 调用; 3)网卡驱动;在手机内存的/etc/wpa_supplicant.conf 中我们可以直接看到 WIFI 支持的网络类型,每种类 型都有例子,比如: #Both WPA-PSK and WPA-EAP is accept
8、ed. Only CCMP is accepted as pairwise and # group cipher. #network= # ssid=“example“ # bssid=00:11:22:33:44:55 # proto=WPA RSN # key_mgmt=WPA-PSK WPA-EAP # pairwise=CCMP # group=CCMP # psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb # 不同类型的网络,不同的参数等等,应有尽有。 4.对对 WIFI 模块的模块的 LOG 了
9、解多一点点了解多一点点 我们在上面已经知道 WIFI 的启动过程,在功能运行中也会输出相应的日志日志信息,下面就来详细了解一下。 (请注意,WIFI 开启后会更改电池状态等其他状态。关闭 WIFI 时, android 的策略是卸载驱动来省电。如有缺失就是问题。不过下文删去了与 WIFI 无关的 LOG!) 1.开启开启 WIFI&自动搜索自动搜索 E/WifiHW ( 1201): =JOHN DEBUG=: WIFI Load Driver 加载驱动 D/SettingsWifiEnabler( 1321): Received wifi state changed from Disable
10、d to Enabling 接收到广播:WIFI 正在开启 D/WifiService( 1201): ACTION_BATTERY_CHANGED pluggedType: 2 电池状态改变 E/WifiHW(1201):=JOHNDEBUG=:moduleaddress:4b938008 filename:/system/lib/modules/dhd.ko args:firmware_path=/system/wlan/broadcom/rtecdc.bin nvram_path=/system/wlan/broadcom/nvram.txt WIFI 硬件:加载内核模块 I/wpa_s
11、upplicant( 2490): CTRL-EVENT-STATE-CHANGE id=-1 state=2 wpa_supplicant 发出事件通知 V/WifiMonitor( 1201): Event CTRL-EVENT-STATE-CHANGE id=-1 state=2 WifiMonitor 从 wpa_supplicant 接收事件通知 I/wpa_supplicant( 2490): CTRL-EVENT-SCAN-RESULTS Ready wpa_supplicant 发出事件通知:准备好开始搜索网络了 E/wpa_supplicant( 2490): wpa_dri
12、ver_priv_driver_cmd SCAN-ACTIVE len = 4096 wpa_supplicant 发出事件通知:驱动命令行.主动搜索.LEN E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd SCAN-ACTIVE len = 0, 11 wpa_supplicant 发出事件通知:驱动命令行.主动搜索.LEN E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd SCAN-PASSIVE len = 4096 wpa_supplicant 发出事件通知:驱动命令行.被动搜
13、索.LEN E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd SCAN-PASSIVE len = 0, 12 wpa_supplicant 发出事件通知:驱动命令行.被动搜索.LEN=0.12 D/SettingsWifiEnabler( 1321): Received wifi state changed from Enabling to Enabled 接收到广播:WIFI 已经开启 E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd RSSI len = 4096 wpa_supp
14、licant 发出事件通知: E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd RSSI len = 4, 4 wpa_supplicant 发出事件通知: E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd LINKSPEED len = 4096 wpa_supplicant 发出事件通知: E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd LinkSpeed 54 len = 12, 12 wpa_supplicant 发出事件通
15、知: E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd MACADDR len = 4096 wpa_supplicant 发出事件通知:驱动命令行.MAC 地址.LEN E/wpa_supplicant( 2490): wpa_driver_priv_driver_cmd Macaddr = 44:A4:2D:27:25:BE wpa_supplicant 发出事件通知:驱动命令行.MAC 地址 E/wpa_supplicant( 2490): len = 28, 28 wpa_supplicant 发出事件通知:V/WifiStateT
16、racker( 1201): Connection to supplicant established, state=SCANNING WIFI 状态跟踪:连接请求确认,状态=搜索 D/NetworkStateTracker( 1201): setDetailed state, ld =IDLE and new state=SCANNING 网络状态跟踪:更新显示为搜索状态 V/WifiStateTracker( 1201): Changing supplicant state: SCANNING = INACTIVE WIFI 状态跟踪:更改请求状态:搜索中-不活动2.点击连接点击连接&获取状态获取状态 E/WifiHW ( 1201): =JOHN DEBUG=: WIFI Load Driver WIFI 硬件:加载驱动 D/SettingsWifiEnabler( 1321): Received wifi state changed from Disabled to Enabling 收到广播,WIFI 状态正在开启 E/Wifi