Android Wifi子系统源代码View

本文基于Android 4.2.2+Linux3.6.9+SAMA5D3
SoC从源代码的角度审视Android Wifi子系统。

软件平台:Linux3.6.9 + Android 4.2.2

硬件平台:Atmel SAMA5

Wifi模组:RTL8723AU(USB接口)

Android的WiFi子系统自上而下包括如下一些内容:

应用层

Androd系统自带Settings应用

/system/app/Settings.apk

http://androidxref.com/4.2.2_r1/xref/packages/apps/Settings/src/com/android/settings/wifi/

Java应用框架层

/system/framework/framework.jar

android.net.wifi包

http://androidxref.com/4.2.2_r1/xref/frameworks/base/wifi/java/android/net/wifi/

关键类:

WifiManager

WifiNative

WiFiManger是WiFi部分与外界的接口,用户通过它来访问WiFi的核心功能。

WifiNative将为WifiService、WifiStateTracker和WifiMonitor等几个WiFi框架内部组件提供底层操作支持。

Wifi服务

/system/framework/services.jar

http://androidxref.com/4.2.2_r1/xref/frameworks/base/services/java/com/android/server/WifiService.java

关键类:

WifiService

WiFi系统Java层的核心是根据IWifiManger接口所创建的Binder服务器端和客户端,服务器端是WifiService,客户端是WifiManger,WifiManager与WifiService之间通过Binder机制进行通信。

JNI层

/system/lib/libandroid_runtime.so

Java类WifiNative的本地JNI实现

http://androidxref.com/4.2.2_r1/xref/frameworks/base/core/jni/android_net_wifi_Wifi.cpp

wpa_supplicant适配层

/system/lib/libhardware_legacy.so

http://androidxref.com/4.2.2_r1/xref/hardware/libhardware_legacy/include/hardware_legacy/wifi.h

http://androidxref.com/4.2.2_r1/xref/hardware/libhardware_legacy/wifi/wifi.c

wpa_supplicant客户端库

/system/lib/libwpa_client.so

http://androidxref.com/4.2.2_r1/xref/external/wpa_supplicant_8/

libwpa_client.so是一个给客户端调用的库,用于和wpa_supplicant守护进程进行通信。

wpa_supplicant守护进程

/system/bin/wpa_supplicant

http://androidxref.com/4.2.2_r1/xref/external/wpa_supplicant_8/

wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。

wpa_supplicant是一个独立运行的守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。wpa_supplicant有很多控制接口,也提供命令行和通行界面的控制模式。wpa_supplicant适配层与wpa_supplicant之间通过unix
domain socket机制进行通信。

Wifi驱动

/system/lib/modules/wlan.ko

https://github.com/Android4SAM/platform_hardware_realtek/tree/master/cm8723u/wlan/rtl8723A_WiFi_linux_v4.1.3_6044.20121224

Android Wifi子系统源代码View,布布扣,bubuko.com

时间: 2024-12-23 08:17:14

Android Wifi子系统源代码View的相关文章

Android Camera子系统之源代码View

本文基于Android 4.2.2+Linux3.6.9+SAMA5D3 SoC从源代码的角度审视Android Camera子系统. 应用层 Androd原生Camera应用 /system/app/LegacyCamera.apk http://androidxref.com/4.2.2_r1/xref/packages/apps/LegacyCamera/ Camera应用调用Android应用框架提供的Camera API import android.hardware.Camera;

Android Camera子系统之进程/文件View

本文基于Android 4.2.2从进程/文件的角度审视Android Camera子系统. AndroidCamera子系统的整体架构分成客户端(Client)和服务器(Server)两个部分,它们建立在Android的进程间通讯机制Binder的基础之上. 查看进程 [email protected]:/# ps USER  PID  PPID  VSIZE   RSS    WCHAN   PC        NAME media 1012    1  37484  8740 ffffff

Android Camera子系统之用户View

一.拍照模式 打开原生Camera应用,将出现如下所示拍照界面 左边为预览区域,右边为控制面板. 控制面板分为三部分,从上到下依次为缩略图.快门按钮和模式选择器. 模式选择器中显示当前模式为拍照模式. 按下快门按钮将会执行拍照操作,缩略图区域显示所拍照片的缩略图. 二.录像模式 点击模式选择器区域,选择录像模式,将会进入录像界面,如下图所示 点击快门按钮将会开始录像,再次点击快门,结束录像. Android Camera子系统之用户View,码迷,mamicode.com

Android Camera子系统之Linux C应用开发者View

Android Camera HAL通过V4L2接口与内核Camera Driver交互.本文从Linux应用开发者的角度审视Android Camera子系统. V4L2应用开发一般流程: 1. 打开设备文件. int fd=open("/dev/videoX″,O_RDWR); 2.取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等.VIDIOC_QUERYCAP,structv4l2_capability 3.选择视频输入,一个视频设备可以有多个

Android 5.0 源代码结构

本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第2章,第2.2节分析Android源代码结构,作者 李骏. 网址:https://yq.aliyun.com/articles/93279?spm=5176.100239.blogcont93310.17.gtBsUg 2.2 分析Android源代码结构 获得Android 5.0源代码后,源代码的全部工程分为以下3个部分. Core Project:核心工程部分,这是建立Android系统的基础,被保存在根目录的各个文件夹

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

Android App的源代码

Android App的源代码: --------------------------------------------------------------------------------------------- // myActivity.java package com.misoo.pk01; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Co

Android(Java):jni源代码

public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        Button btn = new Button(this);        btn.setText("测试ndk");        btn.setOnClickListener(new ButtonOnClickListener());        setContentView(

手机 蓝牙 控制 继电器 无线门锁 物联网 安卓源码 安卓开发 Android WIFI控制 详细注释测试稳定无bug

一.功能: 1.Android  WIFI连接与断开,保存连接IP及端口. 2.WIFI控制3个继电器 3.16进制发送指令,可以单条和多条发送,用逗号隔开. 4.16进制接收 如需特别功能可以找我定制(程序源码,定制专家 手机:18910620895 旺旺:chenhao0568  QQ:345139427). 二.源码如下: 登陆Login.java package com.example.eeeee; import java.io.InputStream; import java.io.O