Android WIFI 掃描概念流程

閱讀時間約 2 分鐘

Android Wifi掃瞄的部分區分成被動掃描與主動掃描:

主動掃瞄:每隔一段時間廣播發送probe request的請求,在各個頻段上詢問AP的訊息,若有收到回應,做紀錄,超時的話則換到下個頻段進行廣播。

被動掃瞄:不發送請求,因為是以省電為目的,因此是單純接收AP傳送的beacon,通過接收到的beacon以獲取AP列表。

在Android的範疇又分為一般掃瞄與PNO掃瞄:

一般掃瞄:即為上方所提的掃瞄(WifiSettings和WifiConnectivityManager)。

PNO掃瞄:掃瞄週期相比於一般掃瞄長,只在特殊情況進行掃瞄,像是滅屏+不連接網路的情況下掃瞄(在WifiConntivityManager的模塊進行)。

主要進行的Android類為兩種:

WifiConnectivity 及 WifiSettings後續下發時皆為觸及WifiScanner,WifiConnectivity牽扯到的比較相似於手機本身的變化觸發的掃瞄,如螢幕亮暗。

WifiSettings觸發的掃瞄偏向於使用者進行某些動作觸發的掃瞄,如開關WIFI掃瞄功能等等。

最後,因為工作需要,這次做了一個簡單的追蹤WIFI主動掃描下發的其中一個流程,從上層至底層:APP -> Framework ->底層 hal。

  1. 主要追蹤的過程是從WifiSetting觸發掃描時開始運作
  2. 接續到BaseWifiTracker -> WifiPickerTracker -> WifiManager(此處皆屬於Application層)
  3. 從WifiManager -> WifiService的過程需要經過AIDL進程
  4. 接著Service的部分從startScan()的API依序調用到Framework層的結尾,即是WifiNative。(Framework層)
  5. 後續從WifiNative之後開始皆為hal層的範圍,因此程式語言改為C++/C

raw-image

以上是關於本次的紀錄。

    dab戴伯
    dab戴伯
    留言0
    查看全部
    發表第一個留言支持創作者!
    你可能也想看
    Google News 追蹤
    Thumbnail
    本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
    Thumbnail
    Android 版 Chrome 瀏覽器中新增了朗讀功能,可以將網頁文字轉換為語音並播放,方便用戶聆聽網頁內容,支援多國語言,包括繁/簡體中文、英文、日語、法文、德文等,還可調整播放速度和選擇語音。
    Thumbnail
    瀏覽器安裝擴充功能可以發揮本身以外的功能。微軟於 2023 年開始在 Android 版 Edge 上測試擴充功能,現階段可以取得官方推薦項目,無法前往 Chrome 或 Edge 商店安裝擴充功能。
    Thumbnail
    本課程學習如何建立 Android Wear (Wear OS by Google) 智慧穿戴式手錶專案的步驟。詳細說明了如何在 Android Studio 中建立 Wear OS 專案,包括選擇專案範本、設定專案屬性、建立手錶模擬器等步驟。最後,示範了運行專案並在模擬器上修改顯示文字的過程。
    Thumbnail
    本課程學習如何透過函數重構程式碼,提高可讀性、可維護性和重用性。以按鈕操作為例,將不同邏輯提取成函數,例如 allClear()、equalSign() 等,使程式碼更簡潔易懂,提升開發效率。
    Thumbnail
    本課程學習如何實作處理加、減、乘和除按鈕等計算機相關邏輯。
    Thumbnail
    本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
    Thumbnail
    本課程學習如何修改按鈕外觀的方法,透過調整背景屬性和形狀。我們新增了四種背景顏色,修改每個按鈕的外觀。完成後,呈現不同按鈕風格。
    Thumbnail
    本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
    Thumbnail
    Android 版 Chrome 瀏覽器中新增了朗讀功能,可以將網頁文字轉換為語音並播放,方便用戶聆聽網頁內容,支援多國語言,包括繁/簡體中文、英文、日語、法文、德文等,還可調整播放速度和選擇語音。
    Thumbnail
    瀏覽器安裝擴充功能可以發揮本身以外的功能。微軟於 2023 年開始在 Android 版 Edge 上測試擴充功能,現階段可以取得官方推薦項目,無法前往 Chrome 或 Edge 商店安裝擴充功能。
    Thumbnail
    本課程學習如何建立 Android Wear (Wear OS by Google) 智慧穿戴式手錶專案的步驟。詳細說明了如何在 Android Studio 中建立 Wear OS 專案,包括選擇專案範本、設定專案屬性、建立手錶模擬器等步驟。最後,示範了運行專案並在模擬器上修改顯示文字的過程。
    Thumbnail
    本課程學習如何透過函數重構程式碼,提高可讀性、可維護性和重用性。以按鈕操作為例,將不同邏輯提取成函數,例如 allClear()、equalSign() 等,使程式碼更簡潔易懂,提升開發效率。
    Thumbnail
    本課程學習如何實作處理加、減、乘和除按鈕等計算機相關邏輯。
    Thumbnail
    本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
    Thumbnail
    本課程學習如何修改按鈕外觀的方法,透過調整背景屬性和形狀。我們新增了四種背景顏色,修改每個按鈕的外觀。完成後,呈現不同按鈕風格。