Andriod7.0之wifi开启流程(含流程框图及流程图)

流程说明之前,我们先看一下wifi的框架:
在这里插入图片描述

  • WifiSettings.java 负责显示Wifi的设置界面
  • WifiEnabler.java 负责Wifi的开关逻辑
  • WifiDialog.java 负责Wifi的对话框
  • WifiInfo.java 表示Wifi的相关配置信息
  • WifiManager: 它是Wifi模块向外部应用透漏出来的接口,其它所有应用都可以通过WifiManager来操作Wifi的各项功能,但是WifiManager本身不具备处理请求的能力,而是把所有的请求转发给WifServiceImpl来处理。
  • WifiService: Java Framework中Wifi功能的总入口,负责Wifi功能的核心业务。它是服务器端的实现,作为Wifi部分的核心,处理实际的驱动加载、扫描、链接、断开等命令,以及底层上报的事件。对于主动的命令控制,WiFi是一个简单的封装,针对来自客户端的控制命令,调用相应的WifiNative底层实现。
  • WifiStateTracker: 除了负责WiFi的电源管理模式等功能外,其核心是WifiMonitor所实现的事件轮询机制,以及消息处理函数handleMessage()。
  • WifiMonitor: 专门负责接收来自Wpa_supplicant的事件,并将这些信息进行分类再交予StateMachine处理。
  • WifiNative: 一个接口类,主要是提供一些native方法用于wifi framework层和WPAS通信。WifiNative的主要实现都在wifi.c函数里,WifiNative不过是将其封装,供framework层调用。
    在这里插入图片描述
  • JNI:android_net_wifi_Wifi.cpp就是典型jni接口,通过它可以直接调用Wifi的硬件抽象层
  • Wifi Hardware层:也叫wpa_supplicant适配层,是通用wpa_supplicant的封装。wpa_supplicant适配层起着承上启下的作用,主要用于与wpa_supplicant守护进程的通信,以供给Wifi框架层使用。
  • wpa_supplicant层(wifi tool):该层是Wifi FrameWork层的基石,也叫Wifi服务层。

1:WIFI模块初始化:
SystemServer 启动的时候,会生成一个ConnectivityService 实例, ConnectivityService 的构造函数会创建WifiServiceWifiStateTracker 会创建WifiMonitor 接收来自底层的事件。

WifiService 和WifiMonitor 是整个模块的核心,我们必须围绕这两个服务端进行。

  • WifiService : 负责启动关闭wpa_supplicant、WifiMonitor监视线程和把命令下发给wpa_supplicant
  • WifiMonitor: 负责从wpa_supplicant 接收事件通知。

也就是说WifiService负责wifi整个流程的控制,而WifiMonitor负责监视底层的事件。
下面是流程图:
在这里插入图片描述
请注意上图红色的初始化序号,为初始化顺序
2.wifi模块的启动:
  WirelessSettings 在初始化的时候配置了由WifiEnabler 来处理Wifi 按钮,当用户按下Wifi 按钮后,调用WifiEnabler 的onPreferenceChange,再由WifiEnabler调用WifiManager 的setWifiEnabled 接口函数,通过AIDL,实际调用的是WifiService 的setWifiEnabled 函数,WifiService 接着向自身发送一条MESSAGE_ENABLE_WIFI 消息,在处理该消息的代码中做真正的使能工作:

  • 首先装载WIFI 内核模块
  • 然后启动wpa_supplicant
  • 再通过WifiStateTracker 来启动WifiMonitor中的监视线程

下面是流程图:
在这里插入图片描述
注意,上图绿色是调用的顺序
3.查找wifi热点:
Wifi模块开启后会对外发送WIFI_STATE_CHANGED_ACTION,WifiLayer中注册了Action的Receiver。当WifiLayer收到此Action后开始scan的流程:
在这里插入图片描述

4.配置AP参数并连接
用户在 WifiSettings 界面上选择了一个AP 后,会显示配置AP 参数的一个对话框:
在这里插入图片描述
5.配置ip
在这里插入图片描述
现在我们将这些流程梳理到框架中:
说明一下:

  • 绿色字体及绿色数字:wifi模块初始化及顺序
  • 黄色字体及黄色数字:wifi模块的启动及顺序
  • 红色字体及红色数字:wifi模块查找wifi热点及顺序
  • 蓝色字体及蓝色数字:wifi的ap参数配置及连接顺序
  • 黑色字体及黑色数字:wifi的ip配置及顺序
    在这里插入图片描述
    有一点混乱,还请读者自行梳理一下
    更多的细节会在后面的博客中体现,如有错误,还请大家多提建议,谢谢!
wifi chicken
关注 关注
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
andriod硬件访问硬件服务框架–流程(思维导图)
01-21
写server的框架 有些复杂 就用流程图 表示出来 大概开发应用程序的时候 就是这个流程图 后面 有详细开发按按理—–led server框架开发 根据流程图编写代码 写一个 AIDL 文件 把文件放入 /home/book/Desktop/android...
Andriod通话处理流程
04-27
这个真的经典,值得下载,Android的好资源!
STM32物联网项目——WIFI模块联网
weixin_74135270的博客
08-08 3283
STM32物联网项目——WIFI模块联网
ESP8266实战(一)--wifi时钟的制作
weixin_41866783的博客
08-01 9631
目录1.设计概述2.硬件设计2.1整体设计和功能介绍2.2相关硬件介绍3.电路设计3.1自动下载电路3.2 完整的esp8266应用电路3.3PCB设计4.程序设计4.1程序流程图4.2参考程序5.效果展示 1.设计概述 esp8266是一款性价比极高的wifi蓝牙芯片。它不光集成了wifi蓝牙模组,同时内部集成了单片机内核,可以把它当普通的单片机使用。同时它支arduino编程,micropython编程和自带的idf库编程,使用起来非常方便。 这次设计以esp8266为主控,通过wifi读取ntp时间,
STM32玩转物联网实战篇:5.ESP8266 WIFI模块MQTT通信示例详解
最新发布
qq_42523645的博客
04-25 2530
现在开始手把手的教大家用代码来实现`连接MQTT平台以及数据的交互`,实际上这篇文章已经拖更接近两年了,非常感谢那些默默支持我的朋友们。
ESP8266总结:
dnsy的博客
07-26 4374
ESP8266总结
Wifi模块的启动流程
脱水的a鱼
01-12 1953
硬件:muRataZQ BCM89335 开发板:NXP开发板+芯片:i.Mx6SoloX Linux kernel:4.1.15_2.0.0 内核源码获取: S:\04_EN13_Projects\XCU\10_image\kernel_src_rel_imx_4.1.15_2.0.0_ga.zip 一:设备树的编译:   由于NXP提供的Kernel是对muRata的Wifi模块是
Android WIFI架构
weixin_45030234的博客
10-11 2078
App 与 system_server 通过Binder通信,但Binder本身只实现了IPC,即类似socket通信的能力。从功能上来说,WifiNative是system_server 和 wpa_supplicant 对话的窗口,实际上主要依靠wpa_supplicant项目编译出来的动态库libwpa_client.so。当WIFI处在AP模式。如果说Binder是连接 App 和 system_server 的桥梁,那么WifiManager和WiFiService就是桥梁的两头。
java-andriod.rar_andriod_android_android开发流程_site:www.pudn.com
09-21
android视频开发教程下载地址,介绍整个开发流程和入门教程
andriod开机流程
10-15
andriod启动流程描述,非常容易理解的描述
andriod启动流程
12-13
Android init.rc 启动流程分析
Android 11】【WiFi模块】WiFi打开函数调用流程图
03-23
WiFi打开函数调用流程图
轻松学会WiFi模块(ESP8266)—基于STM32,学到就是赚到!
不说二话的自家人的博客
08-16 6万+
前言 哎哎哎,发觉好久没有更新博客了,最近一直事情比较多,也没什么时间注意博客,不过接下来时间会有了,继续更新STM32F1和MSP430的文章,觉得有帮助的记得收藏点赞哦!关注博主,更多新鲜知识第一时间知道,不容错过哦! 今天这一讲注意涉及到WiFi模块ESP8266的使用,主要是用WiFi来控制LED0亮灭,包括会详细介绍一下该模块的使用,废话不多说,正题进入··· 参考资料:WIFI模块ATK-ESP8266(ESP 01) — 正点原子资料下载中心 1.0.0 文档 (openedv.co
wifi 框架流程分析
Venus 的博客
03-27 1191
待完善“ 文献参考: Android连接Wifi详细源码 http://blog.csdn.net/asasasdasfaf/article/details/54598634 Android WiFi 架构总览(模块及接口) http://blog.csdn.net/xusiwei1236/article/details/48495485 Wifi模块解析和启动流程 http:/...
WiFi通信模块框图
sundaygeek的专栏
03-24 2539
STM32-连接wifi模块(esp8266)
jx5631833的博客
08-18 2万+
乐鑫智能互联平台——ESP8266 拥有高性能无线 SOC,是一个完整且自成体系的 WiFi 网络解决方案,能够独立运行,也可以作为 slave 搭载于其他 Host 运行。
cfg80211的kernel架构(基于Linux 3.08)之sta
会飞的狼的专栏
04-25 2223
http://blog.chinaunix.net/uid-27167114-id-3783603.html 1, 大致框架 2, 几个主要流程 a) malloc & init(softmac) 内存分布 struct wiphy struct ieee80211_local Driver
【常用模块】ESP8266 WIFI串口通信模块使用详解(实例:附STM32详细代码)
热门推荐
Yngz_Miao的博客
01-27 36万+
物联网,万物互联。这里涉及到的最基本的东西就是如何将所有的物联网设备连接在一起。最简单、最广泛使用的就是互联网。 ESP8266 WIFI串口通信模块应该是使用最广泛的一种WIFI模块之一了。为什么呢? 因为ESP8266模块是一款高性能的WIFI串口模块,可以不用知道太多WIFI相关知识就可以很好的上手。说白了,只是个WIFI转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透...
andriod开发流程
05-23
Android开发流程大致分为以下几个步骤: 1.确定需求:明确你的App要做什么,包括功能、界面设计、用户体验等方面。 2.设计UI界面:根据需求设计应用的用户界面,包括布局、颜色、字体等。 3.编写代码:使用Java或...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • gitk详解 16416
  • 4线SPI实现OLED显示(基于STM32F103ZET6) 13594
  • 三基色PWM调光方法 10255
  • wap_cli连接wifi(wpa_cli与wpa_supplicant的理解) 10093
  • 了解Wi-fi频段概念 9460

分类专栏

  • wifi 17篇
  • linux 16篇
  • 笔记 3篇
  • wifi日志抓取 2篇
  • linux 
  • ubuntu 8篇
  • 签名 1篇
  • vim与vi 2篇
  • 命令行 2篇
  • C语言 6篇
  • 操作系统 2篇
  • 手势识别 1篇
  • FDC2214 1篇
  • 进程
  • STM32F103ZET6 1篇

最新评论

  • TI杯基于FDC2214的手势识别设计(黑龙江省赛)

    Micheasbl: 有仿真图测试吗?

  • STM32F103ZET6开发板实现跑马灯实验

    2401_83298158: delay.h里是啥?

  • 实现模拟IIC与EEPROM(24c02)通信(基于STM32F103ZET6)

    Buguie: 佬, Stop时序图中scl为高时,sda才能发生变化

  • 成为wifi驱动工程师应该从什么开始学习

    三年架构梦: 正准备从上层往下层学习,感谢大佬指路

  • 串口通信详解(项目级接收、发送机制,基于STM32F103ZET6)

    wifi chicken: 你可以做一个试试哈

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Linux内核发送网络数据
  • 内核是如何接收⽹络包的?
  • Linux网络内核基础框架
2024年6篇
2023年19篇
2022年8篇
2021年13篇
2020年41篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司成都网站优化推广公司张家口英文网站建设公司永湖网站优化排名成都网站推广系统报价文山百度竞价包年推广哪家好海南外贸网站建设推荐黔东南网站推广系统推荐昌吉网站优化排名哪家好阳泉网站优化按天计费哪家好舟山网站优化按天扣费多少钱宁波优化哪家好宝安外贸网站建设南澳seo推荐唐山百姓网标王多少钱许昌seo网站推广价格霍邱关键词按天计费哪家好丽水网站优化排名报价松原seo网站优化推荐池州网站优化按天扣费公司南澳百度网站优化排名公司晋城百度网站优化排名价格沈阳英文网站建设报价泉州seo排名价格淮安关键词排名大理百度竞价包年推广报价新余SEO按天收费温州百度网站优化大运网站推广系统报价鞍山百搜标王报价泰安百姓网标王哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化