Android มีการใช้งานเฟรมเวิร์ก Android เริ่มต้นที่รองรับโปรโตคอลและโหมด Wi-Fi ต่างๆ ซึ่งรวมถึง
- โครงสร้างพื้นฐาน Wi-Fi (STA)
- ฮอตสปอต Wi-Fi (Soft AP) ในโหมดเชื่อมต่ออินเทอร์เน็ตผ่านมือถือหรือโหมดในพื้นที่เท่านั้น
- Wi-Fi Direct (P2P)
- Wi-Fi Aware (NAN)
- RTT ของ Wi-Fi (IEEE 802.11mc FTM)
แอปพลิเคชันที่ใช้บริการ Wi-Fi จะสื่อสารกับบริการ Wi-Fi ต่างๆ ผ่าน Binder โดยตรง บริการ Wi-Fi ทำงานในบริการของระบบและ สื่อสารกับ HAL ผ่านอินเทอร์เฟซ HIDL และ AIDL ที่ให้ไว้ แผนภาพนี้แสดงโครงสร้างทั่วไปของสแต็ก Wi-Fi ของ Android
รูปที่ 1 สถาปัตยกรรม Wi-Fi ของ Android
เฟรมเวิร์กแอปพลิเคชัน
ที่ระดับเฟรมเวิร์กของแอปพลิเคชันคือโค้ดของแอปพลิเคชัน ซึ่งใช้ API ต่างๆ ของ
android.net.wifi
เพื่อโต้ตอบกับเฟรมเวิร์กและฮาร์ดแวร์ Wi-Fi ภายในแล้ว โค้ดนี้
จะเรียกกระบวนการ Wi-Fi ผ่านกลไก Binder IPC
บริการ Wi-Fi
บริการ Wi-Fi ทำงานในบริการของระบบและอยู่ใน
packages/modules/Wifi/service/
บริการ Wi-Fi จะสื่อสารกับ HAL ของ Wi-Fi ผ่าน AIDL
บริการ Wi-Fi มีหลายประเภท ดังนี้
- บริการ Wi-Fi: กลไกหลักในการควบคุมโหมดโครงสร้างพื้นฐานของ Wi-Fi (ทั้ง STA และ AP)
- บริการ Wi-Fi P2P: จัดการโหมด Wi-Fi Direct
- บริการ Wi-Fi Aware: จัดการโหมด Wi-Fi Aware
- บริการ RTT ของ Wi-Fi: จัดการฟังก์ชัน FTM ของ IEEE 802.11mc
เฟรมเวิร์ก Wi-Fi ยังมีกระบวนการแบบสแตนด์อโลน wificond ซึ่งอยู่ที่
system/connectivity/wificond
กระบวนการ wificond จะสื่อสารกับ
ไดรเวอร์ Wi-Fi ผ่านคำสั่ง nl80211
มาตรฐาน
HAL ของ Wi-Fi
เฟรมเวิร์ก Wi-Fi มี HAL ของ Wi-Fi 3 รายการซึ่งแสดงโดยอินเทอร์เฟซ 3 แบบ ได้แก่ HAL ของผู้ให้บริการ, HAL ของ Supplicant และ HAL ของ Hostapd
ดูรายละเอียดเกี่ยวกับการใช้งาน HAL ต่างๆ ได้ที่ HAL ของ Wi-Fi