Android cung cấp một phương thức triển khai khung Android mặc định, bao gồm cả việc hỗ trợ nhiều giao thức và chế độ Wi-Fi, bao gồm:
- Cơ sở hạ tầng Wi-Fi (STA)
- Điểm phát sóng Wi-Fi (Soft AP) ở chế độ chia sẻ Internet hoặc chỉ trong cục bộ
- Wi-Fi Direct (p2p)
- Wi-Fi Aware (NAN)
- RTT Wi-Fi (IEEE 802.11mc FTM)
Ứng dụng sử dụng dịch vụ Wi-Fi sẽ trực tiếp giao tiếp với nhiều dịch vụ Wi-Fi thông qua Binder. Các dịch vụ Wi-Fi chạy trong Dịch vụ hệ thống và giao tiếp với HAL qua các giao diện HIDL và AIDL được cung cấp. Sơ đồ này cho thấy cấu trúc chung của ngăn xếp Wi-Fi Android.
Hình 1. Cấu trúc Wi-Fi của Android
Khung ứng dụng
Ở cấp khung ứng dụng là mã ứng dụng, sử dụng nhiều API android.net.wifi để tương tác với khung và phần cứng Wi-Fi. Trong nội bộ, mã này gọi quy trình Wi-Fi thông qua cơ chế Binder IPC.
Dịch vụ Wi-Fi
Các dịch vụ Wi-Fi này chạy trong Dịch vụ hệ thống và nằm trong packages/modules/Wifi/service/
. Dịch vụ Wi-Fi giao tiếp với Wi-Fi HAL qua AIDL.
Có nhiều loại dịch vụ Wi-Fi:
- Dịch vụ Wi-Fi: Cơ chế chính để kiểm soát các chế độ cơ sở hạ tầng Wi-Fi (cả STA và AP).
- Dịch vụ Wi-Fi P2P: Quản lý chế độ Wi-Fi Direct.
- Dịch vụ nhận biết Wi-Fi: Quản lý chế độ Nhận biết Wi-Fi.
- Dịch vụ Wi-Fi RTT: Quản lý chức năng FTM IEEE 802.11mc.
Khung Wi-Fi cũng bao gồm một quy trình độc lập, wificond, nằm tại system/connectivity/wificond
. Quy trình wificond giao tiếp với trình điều khiển Wi-Fi qua các lệnh nl80211
tiêu chuẩn.
HAL Wi-Fi
Khung Wi-Fi có 3 nền tảng Wi-Fi HAL được biểu thị bằng 3 giao diện khác nhau: Vendor HAL, Supplicant HAL và Hostapd HAL.
Để biết thông tin chi tiết về cách triển khai các HAL (Lớp trừu tượng phần cứng) khác nhau, hãy xem Wi-Fi HAL.