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 در 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 مراجعه کنید.