Android 8.0的scan流程

  • 最近在查看android 8.0的相关代码,以下是8.0 scan的相关信息
Android O的scan跟之前Android版本存在的差异

1) 现在scan的命令不是通过wpa_supplicant下发到kernel,而是直接改由wificond传送到kernel,而scan results的结果也是直接由kernel传给wificond,再由wificond传送给上层去显示
2) 在framework层,现在scan改由scanner这个类去使用,之前从6.0开始慢慢用起来,现在到了8.0,可以说已经用了近95%了,剩下了目前google还在修改中,google的目标应该是想把scan整个完全独立出来,不跟其他的扯太大,例如WifiStateMachine
3) 目前上层下发的scan,已经改由SettingsLib去定时下,不交给apk去做了。
在android 8.0之前的版本,scan的定时扫描都是在上层app做的,但从8.0开始,google把这个定时器改到了framework中的SettingsLib(frameworks/base/packages/SettingsLib)中去了
如下为google人员对TvSettings所做的更改上的Commit

packages/apps/TvSettings/Settings/src/com/android/tv/settings/connectivity$ git log -pcommit 7e552863cea67e57b375f3db15e0baf70e22c39eAuthor: Tony Mantler @google.com>Date:   Fri Jan 8 11:12:49 2016 -0800    Start using WifiTracker/AccessPoint from SettingsLib    Change-Id: Ie951cdc5a3b2d3188dc1044df624a6d1a0efab74

4) 之前的版本scan操作,当同一时间下两次scan时,是直接交由wpa_supplicant去隔开的,现在由于直接把scan下发给kernel。所以,google已经把上层下的scan跟framework的自动scan也实现了分离,不让这两种flow打到,让同一时间只下一次scan,后一次则做pending动作

以下是目前Android 8.0的scan流程,以及获取scan results的流程

更多相关文章

  1. Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
  2. 流程图控件GoJS内置GraphObject类各指数介绍(二)
  3. Android应用程序版本号管理(官方文档中文版)
  4. android应用程序签名详解
  5. android Input系统事件分发流程
  6. Android应用设计提示:Google Play和属性
  7. android源码的编译问题总结
  8. 【经验】android webview 后退键导致表单再次提交
  9. Android热更新之AndFix就是个大坑

随机推荐

  1. Android之binder驱动个人学习小结
  2. 读懂Android(安卓)(1):使用Android内部的
  3. 自动 Android* 应用测试
  4. 第二章:Android,Getting Start(一)
  5. android的编译和运行过程深入分析
  6. 利用Ant编译android工程
  7. android 导入数据(通讯录)
  8. 基于移动平台的多媒体框架——移植播放器
  9. Android开发资料推荐之Google Android开
  10. Android常见的几种图片加载框架