《Android4.0wifi.ppt》由会员分享,可在线阅读,更多相关《Android4.0wifi.ppt(10页珍藏版)》请在三一办公上搜索。
1、Android 4.0 wifi 框架与启动流程分析,wifi的层次结构,wifi setting 应用程序,frameswork层,JNI,wifi管理层,守护进程wpa_supplicant,socket,driver,wifi 设备,wpa_supplicant,位置:external/wpa_supplicant_8简介:wpa_supplicant本是开源项目源码,被谷歌修改后加android平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动
2、都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。,wifi setting应用程序层,位置:packages/apps/Settings/src/com/android/settings/wifi/wifisetting.java功能:wifi人机交互界面,响应用户操作触发framesworks的wifi操作类,在用户界面上实现下层传递过来的事件。,wifi framesworks层,位置framewor
3、ks/base/services/java/com/android/server/frameworks/base/wifi/java/android/net/wifi/涉及到的文件:SystemServer.javaWifiManager.javaWifiService.javaWifiStateMachine.javaWifinative.java,wifi.c,功能:wifi的管理库位置:hardware/libhardware_legacy简介:实现wifi驱动模块的加载与卸载,开启wpa_supplicant,与wpa_supplicnat通过socket方式进行通信,传递上层发送的信
4、息给wpa_supplicant,接收wpa_supplicant的消息传递给上层进行相应的处理。,wifi.c的主要函数,驱动的加载卸载:wifi_load_driver():wpa_unload_driver()Wpa_supplicant相关:wifi_start_supplicant():wifi_start_supplicant_common(const char*config_file)wifi_connect_to_supplicant():数据的传输:wifi_command(const char*command,char*reply,size_t*reply_len)wifi
5、_send_command(struct wpa_ctrl*ctrl,const char*cmd,char*reply,size_t*reply_len)wifi_wait_for_event(char*buf,size_t buflen)wifi_ctrl_recv(struct wpa_ctrl*ctrl,char*reply,size_t*reply_len),wifi 启动流程简单归纳为三部分,加载驱动开启wpa_supplicant开启监视器,阻塞监听来自下层发送的消息,驱动模块加载原理:扫描usb wifi设备的vid_pid是否与程序中vid_pid表中的其中一个相同,有则加载驱动wifi.c与wpa_supplicant通信方式:socket监听wpa_supplicant向上传递信息:调用wifi_wait_for_event(char*buf,size_t buflen)函数,wifi启动流程,
链接地址:https://www.31ppt.com/p-2412905.html