1. WiFi 基础概念:从入门到实战

大家好,我是你们这门课的老朋友。今天咱们聊聊 WiFi 最基础的东西。别小看这些概念,我见过不少做了三五年开发的同事,在信道干扰、频段选择上栽跟头。说白了,基础不牢,地动山摇。

1.1 什么是 WiFi?

WiFi,全称 Wireless Fidelity,其实就是无线保真。但你别被这个高大上的名字唬住。它本质上就是一根看不见的网线,用无线电波代替了铜缆。

我习惯把 WiFi 理解成「空气里的网线」。你的手机、电脑、智能音箱,都靠它跟路由器「说话」。这个「说话」遵循一套国际标准——IEEE 802.11 系列。嗯,记住这个编号,后面我们会反复提到它。

核心要点:WiFi = 无线局域网通信技术,基于 IEEE 802.11 标准族。

1.2 WiFi 技术演进:从 a 到 be

WiFi 技术一路走来,经历了多次迭代。我刚开始做 Android 开发那会儿,主流还是 802.11n,也就是 WiFi 4。现在回头看,那时候的网速简直像蜗牛爬。

下面这张表,帮你快速理清各代 WiFi 的区别:

标准 商用名 推出年份 最大速率 频段 核心特性
802.11a WiFi 1 1999 54 Mbps 5 GHz OFDM 技术
802.11b WiFi 2 1999 11 Mbps 2.4 GHz DSSS 技术
802.11g WiFi 3 2003 54 Mbps 2.4 GHz 兼容 b,速率提升
802.11n WiFi 4 2009 600 Mbps 2.4/5 GHz MIMO、双频
802.11ac WiFi 5 2013 3.5 Gbps 5 GHz MU-MIMO、波束成形
802.11ax WiFi 6 2019 9.6 Gbps 2.4/5/6 GHz OFDMA、高密场景优化
802.11be WiFi 7 2024 46 Gbps 2.4/5/6 GHz 320MHz 带宽、4096-QAM

你可能会问:为什么从 a 到 be 跳了这么多字母?其实中间还有 802.11d、e、h 等标准,但它们主要针对特定场景(如国际漫游、QoS),不是消费级主力。我们做 Android 开发,重点盯住 n/ac/ax/be 这四个就够了。

我的经验:在 Android 系统里,判断设备支持哪代 WiFi,可以读 /proc/net/wireless 或者用 WifiManager 的 getSupportedFeatures()。我曾经在一个项目里,就因为没判断设备是否支持 5GHz,导致用户连不上公司的高速网络,被吐槽了好久。

1.3 WiFi 频段:2.4GHz vs 5GHz vs 6GHz

频段,说白了就是 WiFi 工作的「车道」。不同频段有不同脾气。

  • 2.4 GHz:穿墙能力强,覆盖广。但干扰也大——微波炉、蓝牙、甚至邻居家的 WiFi 都挤在这条道上。我住的老小区,晚上 2.4GHz 信道简直堵成晚高峰。
  • 5 GHz:速度快,干扰少。但穿墙能力弱,隔一堵墙信号就掉一半。适合近距离高速传输。
  • 6 GHz:WiFi 6E 和 WiFi 7 的新地盘。干净、宽敞、速度快。但覆盖范围更小,目前支持的设备还不多。

我个人习惯:家里路由器开双频合一,手机自动切换。但在做 Android 开发时,我建议你显式让用户选择频段。为什么?因为有些 IoT 设备只支持 2.4GHz,你强行连 5GHz 就掉线了。

避坑指南:我曾经在开发一个智能家居 App 时,配网流程一直失败。查了两天才发现,手机默认连了 5GHz,而智能灯泡只认 2.4GHz。后来我在代码里加了频段过滤,问题才解决。

1.4 WiFi 信道与干扰

信道,就是频段里划分出来的小通道。2.4GHz 频段有 13 个信道(中国),5GHz 有更多。但问题来了:相邻信道会互相干扰。

拿 2.4GHz 举例,信道 1、6、11 是互不重叠的。其他信道或多或少都有重叠。你想想看,如果邻居家路由器用了信道 3,你家用了信道 4,那你们两家就在互相「抢话」——这就是同频干扰。

干扰的后果是什么?丢包、延迟、网速暴跌。在 Android 系统里,你可以用 WifiManager 的 startScan() 扫描周围 AP,然后看每个信道的占用情况。

// 示例:扫描并打印周围 WiFi 信道
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
List<ScanResult> results = wifiManager.getScanResults();
for (ScanResult result : results) {
    int channel = wifiManager.calculateChannelFrequency(result.frequency);
    Log.d("WiFi", "AP: " + result.SSID + " 信道: " + channel);
}

这段代码很简单,但很实用。我经常用它来排查用户反馈的「WiFi 慢」问题。很多时候,换个信道就解决了。

核心建议:在 Android 开发中,如果 App 涉及 WiFi 管理,一定要提供信道检测和切换功能。别让用户手动去路由器后台改,那体验太差了。

知识体系总览

下面这张图,帮你把本章内容串起来。我画图时习惯把核心概念放在中间,外围是它的分支。这样一看就明白 WiFi 基础到底包含什么。

WiFi 基础 IEEE 802.11 什么是 WiFi 无线局域网技术 技术演进 a/b/g/n/ac/ax/be WiFi 频段 2.4 / 5 / 6 GHz 信道与干扰 同频/邻频干扰 WiFi 基础概念知识体系

好了,这一章就到这里。记住:WiFi 不是玄学,它是可以测量、可以优化、可以掌控的技术。下一章我们会深入 Android WiFi 的系统架构,看看这些概念在代码层面是怎么落地的。


公众号:蓝海资料掘金营,微信deep3321