第一階段:Wi-Fi理論基礎:
- Wi-Fi是什麼?
- 802.11協議介紹(802.11a到802.11AD)
- 相關概念(頻譜劃分,接收靈敏度2.4GH,信道劃分,SSID和BSSID)
- 無線接入過程三個階段
- Wi-Fi的應用場景和解決方案,相對於其他無線通信的優劣勢
- omnipeek抓包方法
參考資料:https://blog.csdn.net/myarrow/article/details/7930131
https://blog.csdn.net/Innost/article/details/20651445
第二階段:調用上層API實現相關功能初步熟悉WiFi的工作流程
- WiFi熱點的創建與關閉
- WiFi的搜索與連接
- WiFi熱點數據的傳輸
參考資料:
https://blog.csdn.net/a1533588867/article/details/52459996
https://developer.android.com/guide/topics/connectivity/wifi-scan
第三階段:源碼跟蹤調試及香瓜bug分析(熟悉WiFi源碼實現的過程及原理)(重點掌握)
- wifi掃描機制及連接流程(幾種場景下的掃描機制:滅屏幕/亮屏/隱藏SSID/廣播SSID/已連接狀態/未連接狀態);
- 2.4G與5G 的掃描機制、被動和主動模式,已保存SSID的掃描方式;
源碼相關位置
- wifi快速漫遊原理
這裏只羅列了部分上層相關的類,具體學習時再添加
/apps/Settings/src/com/android/settings/wifi/WifiSettings.java
/base/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
frameworks/base/wifi/java/android/net/wifi/WifiManager.java
./opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java
./opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
./opt/net/wifi/service/java/com/android/server/wifi/WifiConnectivityManager.java
參考資料:
https://blog.csdn.net/h784707460/article/details/79658950
https://blog.csdn.net/wbw1985/article/details/39320429
https://blog.csdn.net/izobs_lin/article/details/52857089
《深入理解Android:WiFi模塊 NFC和GPS卷》
第四階段:深入學習Wi-Fi相關模塊的功能原理(參考資料後續整理)
WCNSS_conf_cfg.ini中常用配置項(作用及代碼流程);
6. wifi快速漫遊原理;
7. 802.11常用協議解析1;(beacon、probe_req、probe_rsn、assoc_req、assoc_rsn、auth、deauth);
8. 802.11 常用協議協議2:(reassoc_req、reassoc_rsn、icmp、arp、4hand-key等)
9. 常用加密協議流程1:open/wpa-psk/wpa2-psk/WEP流程;
10. 常用加密協議流程2:EAP-TLS/PEAP的802.11流程;
11. 協議超時及重發機制;
12. DHCP;
13. wifi省電模式(DOZE模式/IPSM/BMSP/設置中的選項);
14. 靜態IP;
15. P2P 學習
16. Host AP 學習
17. Miracase 學習
18. WPS 學習
第五階段: Wi-Fi在物聯網以及在智能傢俱中的應用(參考資料後續整理)