概要

Android には、各種の Wi-Fi プロトコルや Wi-Fi モードのサポートなどを含む、次のようなデフォルトの Android フレームワークが実装されています。

  • Wi-Fi インフラストラクチャ(STA)
  • テザリング モードまたはローカル専用モードの Wi-Fi アクセス ポイント(Soft AP)
  • Wi-Fi Direct(P2P)
  • Wi-Fi Aware(NAN)
  • Wi-Fi RTT(IEEE 802.11mc FTM)

Wi-Fi サービスを使用するアプリは、Binder を介してさまざまな Wi-Fi サービスと直接通信します。Wi-Fi サービスはシステム サービスで実行され、提供される HIDL と AIDL インターフェースを介して HAL と通信します。次の図は、Android Wi-Fi スタックの一般的な構造を示しています。

Wi-Fi アーキテクチャ

図 1:Android の Wi-Fi アーキテクチャ

アプリケーション フレームワーク

アプリケーション フレームワーク レベルには、さまざまな android.net.wifi API を使用して、Wi-Fi フレームワークおよびハードウェアとの通信を行うアプリコードがあります。内部では、このコードが Binder IPC メカニズムを介して Wi-Fi プロセスを呼び出します。

Wi-Fi サービス

Wi-Fi サービスはシステム サービスで実行され、packages/modules/Wifi/service/ で確認できます。Wi-Fi サービスは、AIDL を介して Wi-Fi HAL と通信します。

次のようなさまざまな 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 プロセスは、標準の nl80211 コマンドを介して Wi-Fi ドライバと通信します。

Wi-Fi HAL

Wi-Fi フレームワークには、Vendor HAL、Supplicant HAL、Hostapd HAL の 3 つのそれぞれの HIDL パッケージに代表される 3 つの Wi-Fi HAL サーフェスがあります。

さまざまな HAL の実装について詳しくは、Wi-Fi HAL をご覧ください。