نمای کلی

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

  • زیرساخت Wi-Fi‏ (STA)
  • نقطه اتصال Wi-Fi (نقطه دسترسی نرم‌افزاری) در حالت‌های اینترنت‌رسانی یا فقط محلی
  • Wi-Fi بی‌واسطه (p2p)
  • ‫Wi-Fi Aware (شبکه اتصال مجاورتی)
  • ‫Wi-Fi RTT (IEEE 802.11mc FTM)

برنامه‌ای که از سرویس‌های Wi-Fi استفاده می‌کند مستقیماً ازطریق Binder با سرویس‌های Wi-Fi مختلف ارتباط برقرار می‌کند. سرویس‌های Wi-Fi در «سرویس سیستم» اجرا می‌شوند و ازطریق میاناهای HIDL و AIDL ارائه‌شده با HAL ارتباط برقرار می‌کنند. این نمودار ساختار کلی پشته Wi-Fi در Android را نشان می‌دهد.

معماری Wi-Fi

شکل ۱. معماری Wi-Fi در Android

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

در سطح چارچوب برنامه، کد برنامه قرار دارد که از میاناهای برنامه‌سازی کاربردی 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 HALs

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

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