Android предоставляет реализацию фреймворка Android по умолчанию, которая включает поддержку различных протоколов и режимов Wi-Fi, в том числе:
- Инфраструктура Wi-Fi (STA)
- Точка доступа Wi-Fi (Soft AP) в режиме привязки или локального подключения
- Wi-Fi Direct (p2p)
- Поддержка Wi-Fi (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Приложение, использующее службы Wi-Fi, напрямую взаимодействует с различными службами Wi-Fi через Binder. Службы Wi-Fi работают в системной службе и взаимодействуют с HAL через предоставленные интерфейсы HIDL и AIDL. На этой схеме показана общая структура стека Wi-Fi Android.
Рисунок 1. Архитектура Android Wi-Fi
Рамка приложения
На уровне фреймворка приложения находится код приложения, который использует различные API android.net.wifi для взаимодействия с фреймворком и оборудованием Wi-Fi. Внутри этот код вызывает процесс Wi-Fi через механизм Binder IPC.
Услуги 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 HAL
Платформа Wi-Fi имеет три поверхности Wi-Fi HAL, представленные тремя различными интерфейсами: Vendor HAL, Supplicant HAL и Hostapd HAL.
Подробную информацию о реализациях различных HAL см. в разделе Wi-Fi HAL .