1wifi 简介(框架)

一、wifi 组建原理:

        WIFI就是一种无线联网的技术,以前通过网线连接电脑,而现在则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线路由器的电波覆盖的有效范围都可以采用WIFI连接方式进行联网,如果无线路由器连接了一条ADSL线路或者别的上网线路,则又被称为“热点”。

        一般架设无线网络的基本配备就是 无线网卡 及 一个AP(无线接入点)。有了AP,就像一般有线网络的Hub一般,无线工作站可以快速且轻易地与网络相连。特别是对于宽带的使用,WiFi更显优势,有线宽带网络(ADSL、小区LAN等)到户后,连接到一个AP,然后在电脑中安装一块无线网卡即可上网。普通的家庭有一个AP已经足够,甚至用户的邻里得到授权后,则无需增加端口,也能以共享的方式上网。


二、=================== android WIFI 框架 =======================


---------------------------------------------------------------------------------------------------


三、 Android平台Wifi 编译前 基本代码 路径 及 文件名(根文件系统的源码下)

1、Wifi setting 部分(Java应用层)

位于packages/apps/Settings/src/com/android/settings/wifi/

WifiSettings.java&WifiEnabler.java

2、JAVA Framework部分
位于frameworks/base/services/java/com/android/server/

WifiService.java &WifiWatchdogService.java
位于frameworks/base/wifi/java/android/net/wifi/

WifiManager.java&WifiMonitoer.java&WifiStateTracker.java &WifiNative.java

3.       Wifi的JNI部分

位于 frameworks/base/core/jni/android_net_wifi_Wifi.cpp

4.       Wifi的HAL层代码(wpa_supplicant适配器层)

位于 hardware/libhardware_legary/wifi/wifi.c

5.       Wpa_supplicant程序的 源码部分(tools)
位于 external/wpa_supplicant_6/

external/wpa_supplicant/
生成库libwpa_client.so 和 守护进程wpa_supplicant
6.kernel (wifi 驱动*.ko)
位于 net/wireless     drivers/wlan_sd8688       arch/arm/mach-pxa/wlan_pm.c

四、每一层 编译后 的所在位置

Java应用层
  -- Settings, Wifi Switcher等应用

  --> /system/app/

Java Framework层  

    --> 

        /system/framework/services.jar

JNI层  

  --> /system/framework/framework.jar

wpa_supplicant 适配器层

    --> /system/lib/libhardware_legacy.so

wpa_supplicant 程序

    --> /system/bin/wpa_supplicant

        /system/lib/libwpa_client.so

Kernel层
  -- kernel network drivers  




===================== android WIFI 框架 end ====================================

Wifi 网卡状态

1.    WIFI_STATE_DISABLED: WIFI网卡不可用

2.    WIFI_STATE_DISABLING: WIFI正在关闭

3.    WIFI_STATE_ENABLED:WIFI网卡可用

4.    WIFI_STATE_ENABLING:WIFI网卡正在打开

5.    WIFI_STATE_UNKNOWN:未知网卡状态



Rootfs中 关于wpa_supplicant的配置

1) /device/amlogic/f08refe1/BoardConfig.mk  //wpa_supplicant版本,driver
WPA_SUPPLICANT_VERSION := VER_0_6_X
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
2) root/init.rc   //wpa_supplicant service
setprop wifi.interface wlan0
service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -d -c /data/misc/wifi/wpa_supplicant.conf
    socket wpa_wlan0 dgram 0666 wifi wifi
3) /system/etc/wifi/wpa_supplicant.conf//config for wpa_supplicant service
update_config=1
ctrl_interface=wlan0
eapol_version=1
ap_scan=1
fast_reauth=1

---------------------



原文地址:https://www.cnblogs.com/liulaolaiu/p/11745069.html