Android WIFI模块测试分析和总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android WIFI 模块测试 对 android 平台的 WIFI 模块进行已经有段时间了,现在做一总结,以便以后查阅与修正。心得之作,如有异议,请斧正。 什么是 WIFI WIFI 是一种无线连接技术,可用于 PC,PDA,手机等终端。 WIFI 的目的是改善基于IEEE802.11 标准的无线网络产品之间的互通性,也就是说 WIFI 是基于 802.11 标准的,但WIFI 不等同无线网络。 android 平台下的 WIFI 模块简单介绍一下,WIFI 模块的基本功能: 开关WIFI 除了在 WIFI 设置界面可以开关 WIFI,还有其他的入口可以开关,要查看这些开关状态是否一致。还有就是飞行模式对WIFI 开关的影响,由于 WIFI 开和关都有一个时间过程,而飞行模式的开关瞬间完成,所以有时会出现冲突。 开关新可用网络提醒 新可用网络的定义是自WIFI 模块开启后,从未发现过的,为加密的网络。只有满足了新可用网络的定义,才会有提醒。 连接断开网络 连接断开各种不同加密类型的网络(具体类型下文有详解) 手动添加网络 需要路由器关闭SIID 广播。可手动输入 SIID,网络加密类型,密码。对于 OPAL 手机来说, 路由器隐藏了SSID,手动添加的网络是无法连接的。 搜索网络 手动点击搜索按钮可以搜索网络,也可以等待WIFI 模块自动搜索网络。 休眠设置 由于WIFI 模块是用电大户,所有为了省电,android 的 WIFI 加了一个休眠策略,可以设置永远不断开,充电时不断开和锁屏时断开。要测试休眠设置是否有效,可以在路由器上 PING 手机的 IP,PING 通就是连接状态。OPAL 手机的休眠策略属于完全失效,现在的情况是无论选哪个都会一直保持连接,锁屏后15 分钟再休眠。 设置静态IP Android 系统里对 IP 设置的输入限制很有问题,我一直认为这是弱智的限制。正常IP 的范围在 0-255 之间, android 对 IP 输入的限制是整数 0 到整数 255 之间,也就是说0000.000200.001.001 这样一个IP 都能合法输入。 3. 对 WIFI 模块深入了解一点点 WIFI 的基本运行流程 【初始化】 1 在 SystemServer 启动的时候,会生成一个 ConnectivityService 的实例2 ConnectivityService 的构造函数会创建 WifiService 3 WifiStateTracker 会创建 WifiMonitor 接收来自底层的事件,WifiService 和 WifiMonitor 是整个模块的核心。WifiService 负责启动关闭 wpa_supplicant、启动关闭 WifiMonitor 监视线程和把命令下发给 wpa_supplicant,而 WifiMonitor 则负责从 wpa_supplicant 接收事件通知。 【连接 AP】 WirelessSettings 在初始化的时候配置了由 WifiEnabler 来处理 Wifi 按钮 当用户按下Wifi按钮后, Android会调用WifiEnabler的onPreferenceChange,再由WifiEnabler 调用 WifiManager 的 setWifiEnabled 接口函数,通过 AIDL,实际调用的是 WifiService 的setWifiEnabled 函数,WifiService 接着向自身发送一条 MESSAGE_ENABLE_WIFI 消息,在处理该消息的代码中做真正的使能 工作:首先装载 WIFI 内核模块 (该模块的位置硬编码为/system/lib/modules/wlan.ko ),然 后 启 动 wpa_supplicant (配 置 文 件 硬 编 码 为/data/misc/wifi/wpa_supplicant.conf)再通过 WifiStateTracker 来启动 WifiMonitor 中的监视线程 当使能成功后,会广播发送 WIFI_STATE_CHANGED_ACTION这个 Intent 通知外界 WIFI 已 经 成 功 使 能 了 。 WifiEnabler 创 建 的 时 候 就 会 向 Android 注 册 接 收 WIFI_STATE_CHANGED_ACTION因, 【查找 AP】 此它会收到该 Intent,从而开始扫描 扫描的入口函数是 WifiService 的 startScan,它其实也就是往 wpa_supplicant 发送 SCAN 命令。 当 wpa_supplicant 处理完 SCAN 命令后,它会向控制通道发送事件通知扫描完成 ,从而wifi_wait_for_

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档