Обзор

Android предоставляет стандартную реализацию фреймворка Android, которая включает поддержку различных протоколов и режимов Wi-Fi, в том числе:

  • Инфраструктура Wi-Fi (STA)
  • Точка доступа Wi-Fi (программная точка доступа) в режиме подключения к сети или только в локальном режиме.
  • Wi-Fi Direct (p2p)
  • Wi-Fi Aware (NAN)
  • Wi-Fi RTT (IEEE 802.11mc FTM)

Приложение, использующее службы Wi-Fi, напрямую взаимодействует с различными службами Wi-Fi через Binder. Службы Wi-Fi работают в системной службе и взаимодействуют с HAL по предоставленным интерфейсам HIDL и AIDL. На этой диаграмме показана общая структура стека Wi-Fi Android.

Архитектура Wi-Fi

Рисунок 1. Архитектура Wi-Fi в Android.

Прикладная платформа

На уровне фреймворка приложения находится код приложения, который использует различные API android.net.wifi для взаимодействия с фреймворком Wi-Fi и оборудованием. Внутри этот код вызывает процесс Wi-Fi через механизм межпроцессного взаимодействия Binder.

Услуги Wi-Fi

Службы Wi-Fi работают в системной службе и расположены в packages/modules/Wifi/service/ . Служба Wi-Fi взаимодействует с Wi-Fi HAL по протоколу AIDL.

Существует множество различных сервисов Wi-Fi:

  • Сервис Wi-Fi: основной механизм управления режимами работы инфраструктуры Wi-Fi (как STA, так и AP).
  • Сервис Wi-Fi P2P: управляет режимом Wi-Fi Direct.
  • Служба Wi-Fi Aware: управляет режимом Wi-Fi Aware.
  • Сервис Wi-Fi RTT: управляет функциональностью IEEE 802.11mc FTM.

В состав платформы Wi-Fi также входит автономный процесс wificond , расположенный по адресу system/connectivity/wificond . Процесс wificond взаимодействует с драйвером Wi-Fi посредством стандартных команд nl80211 .

Wi-Fi HALs

В рамках Wi-Fi-инфраструктуры имеется три интерфейса HAL, представленные тремя различными интерфейсами: Vendor HAL, Supplicant HAL и Hostapd HAL.

Подробную информацию о реализации различных HAL см. в разделе Wi-Fi HAL .