blob: b2ea569a279ada201c6b0e78c0a786a71e65085e [file] [log] [blame]
<html devsite><head>
<meta name="book_path" value="/_book.yaml"/>
<meta name="project_path" value="/_project.yaml"/>
</head>
<body>
<!--
Copyright 2018 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<h1 id="overview" class="page-title">概览</h1>
<p>Android 提供默认 Android 框架实现,其中包括对各种 WLAN 协议和模式的支持,这些协议和模式包括:</p>
<ul>
<li>WLAN 基础架构 (STA)</li>
<li>网络共享模式或仅限本地模式下的 WLAN 热点 (Soft AP)</li>
<li>WLAN 直连(点对点)</li>
<li>WLAN 感知 (NAN)</li>
<li>WLAN RTT (IEEE 802.11mc FTM)</li>
</ul>
<p>使用 WLAN 服务的应用通过 Binder 直接与各种 WLAN 服务进行通信。WLAN 服务在系统服务中运行,并通过 HIDL 与 HAL 进行通信。下图显示了 Android WLAN 堆栈的常规结构。</p>
<p><img src="/devices/tech/connect/images/wifi-arch.png" alt="WLAN 架构"/></p>
<p><strong>图 1. </strong> Android WLAN 架构</p>
<h2 id="application_framework">应用框架</h2>
<p>应用代码位于应用框架级别,它使用各种 <a href="https://developer.android.com/reference/android/net/wifi/package-summary">android.net.wifi</a> API 与 WLAN 框架和硬件进行交互。此代码在内部通过 Binder IPC 机制调用 WLAN 进程。</p>
<h2 id="wi_fi_services">WLAN 服务</h2>
<p>WLAN 服务在系统服务中运行,这类服务位于 <code>frameworks/opt/net/wifi</code> 中。WLAN 服务通过 HIDL 与 WLAN HAL 进行通信。</p>
<p>WLAN 服务有很多种:</p>
<ul>
<li>WLAN 服务:用于控制 WLAN 基础架构模式(包括 STA 和 AP)的主要机制。</li>
<li>WLAN 点对点服务:管理 WLAN 直连模式。</li>
<li>WLAN 感知服务:管理 WLAN 感知模式。</li>
<li>WLAN RTT 服务:管理 IEEE 802.11mc FTM 功能。</li>
</ul>
<p>此外,WLAN 框架还包括一个独立的进程 <strong>wificond</strong>,此进程位于 <code>system/connectivity/wificond</code> 中。<strong>wificond</strong> 进程通过标准 <code>nl80211</code> 命令与 WLAN 驱动程序进行通信。</p>
<h2 id="wi_fi_hals">WLAN HAL</h2>
<p>WLAN 框架具有三个 WLAN HAL 表面,分别由三个不同的 HIDL 软件包表示:供应商 HAL、客户端 HAL 和 Hostapd HAL。</p>
<p>要详细了解各种 HAL 的实现,请参阅 <a href="/devices/tech/connect/wifi-hal">WLAN HAL</a></p>
</body></html>