نمای کلی

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

  • زیرساخت وای‌فای (STA)
  • هات‌اسپات وای‌فای (Soft AP) در حالت‌های اتصال به اینترنت (tethered) یا فقط اتصال محلی (local-only)
  • وای‌فای دایرکت (p2p)
  • آگاه از وای‌فای (NAN)
  • وای‌فای RTT (IEEE 802.11mc FTM)

یک برنامه کاربردی که از سرویس‌های وای‌فای استفاده می‌کند، مستقیماً از طریق Binder با سرویس‌های مختلف وای‌فای ارتباط برقرار می‌کند. سرویس‌های وای‌فای در System Service اجرا می‌شوند و از طریق رابط‌های HIDL و AIDL ارائه شده با HAL ارتباط برقرار می‌کنند. این نمودار ساختار کلی پشته وای‌فای اندروید را نشان می‌دهد.

معماری وای‌فای

شکل 1. معماری وای‌فای اندروید

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

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

سرویس‌های وای‌فای

سرویس‌های وای‌فای در System Service اجرا می‌شوند و در packages/modules/Wifi/service/ قرار دارند. سرویس وای‌فای از طریق AIDL با Wi-Fi HAL ارتباط برقرار می‌کند.

سرویس‌های وای‌فای مختلفی وجود دارد:

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

HAL های وای فای

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

برای جزئیات بیشتر در مورد پیاده‌سازی HAL های مختلف، به Wi-Fi HAL مراجعه کنید.