بررسی اجمالی

اندروید یک چارچوب پیش‌فرض اندروید را ارائه می‌کند که شامل پشتیبانی از پروتکل‌ها و حالت‌های مختلف Wi-Fi، از جمله:

  • زیرساخت 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 ارتباط برقرار می‌کنند. این نمودار ساختار کلی پشته وای فای اندروید را نشان می دهد.

معماری Wi-Fi

شکل 1. معماری Wi-Fi اندروید

چارچوب برنامه

در سطح چارچوب برنامه، کد برنامه وجود دارد که از API های مختلف android.net.wifi برای تعامل با چارچوب و سخت افزار Wi-Fi استفاده می کند. در داخل، این کد فرآیند Wi-Fi را از طریق مکانیزم Binder IPC فراخوانی می کند.

خدمات وای فای

سرویس‌های Wi-Fi در System Service اجرا می‌شوند و در 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 از طریق دستورات استاندارد nl80211 با درایور Wi-Fi ارتباط برقرار می کند.

هال های وای فای

چارچوب Wi-Fi دارای سه سطح Wi-Fi HAL است که با سه رابط مختلف نشان داده شده است: Vendor HAL، Supplicant HAL و Hostapd HAL.

برای جزئیات در مورد اجرای HAL های مختلف، Wi-Fi HAL را ببینید.