本頁介紹如何使用 AOSP 中提供的工具測試、調試和調整 Wi-Fi 實施。
測試
為了測試 Wi-Fi 框架,AOSP 提供了單元測試、集成測試 (ACTS) 和 CTS 測試的組合。
單元測試
AOSP 包括默認 Wi-Fi 框架的功能和單元測試:Wi-Fi 管理器(應用端代碼)和 Wi-Fi 服務。
Wi-Fi 管理器測試:
- 位於
packages/modules/Wifi/framework/tests/
使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):
atest FrameworksWifiApiTests
Wi-Fi 服務測試:
- 位於
packages/modules/Wifi/service/tests/wifitests/
使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):
atest FrameworksWifiTests
Android 通訊測試套件
Android Comms Test Suite (ACTS) 執行連接堆棧的自動化測試,例如 Wi-Fi、藍牙和蜂窩服務。測試工具需要 adb 和 Python,可以在tools/test/connectivity/acts
中找到。
Wi-FI 的 ACTS 測試位於tools/test/connectivity/acts_tests/tests/google/wifi
中,在同一目錄中包含示例測試配置: example_config.json
。
CTS 測試
兼容性測試套件(CTS) 包括針對 Wi-Fi 框架的測試。這些位於cts/tests/tests/net/src/android/net/wifi
中。 Wi-Fi CTS 測試要求在測試運行開始時將被測設備與接入點相關聯。
用於調試的增強日誌記錄選項
Android 9 改進了 Wi-Fi 日誌記錄,以便更輕鬆地調試 Wi-Fi 問題。在 Android 9 或更高版本中,驅動程序/固件環形緩衝區可以始終打開。當檢測到錯誤狀態時,可以自動觸發錯誤報告(僅在 userdebug 和 eng 構建中)。當使用 Wi-Fi HAL(1.2 或更高版本)時,固件調試緩衝區存儲在 HAL 中而不是框架中,以節省 IPC 成本。
執行
有關參考實現,請參閱供應商 HAL 中的默認實現。
您可以通過將資源config_wifi_enable_wifi_firmware_debugging
設置為 false 來禁用固件日誌記錄。
集成測試 (ACTS)
集成測試可以在/tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
找到。
已驗證的固件轉儲保存在閃存中相應的 tombstone 目錄中,用於 userdebug 構建。 Dumpstate 在創建錯誤報告時從該目錄收集。
手動測試
運行此手動測試以驗證tombstone 目錄中的舊文件是否正在被刪除。
- 打開無線網絡。
- 連接到網絡。
- 生成錯誤報告。
- 檢查 bugreport zip 文件並確認
/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt
包含存檔的固件日誌。
配置調優
為了控制設備與網絡關聯或解除關聯的信號強度,Wi-Fi 框架使用進入和退出RSSI 閾值。
進入和退出閾值存儲為具有以下名稱的可重載配置參數(其中bad
參數是指退出RSSI 閾值):
-
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
參數存儲在<root>/frameworks/base/core/res/res/values/config.xml
,可以使用覆蓋文件<root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml
。
您可以通過使用 adb 命令配置設備來測試新閾值。 (或者,您可以使用新的覆蓋創建構建,但使用 adb 命令可提供更快的測試周轉時間。)
adb shell settings put global wifi_score_params \
[rssi2|rssi5]=<bad>:<entry>:<low>:<good>
例如,以下命令配置新的閾值參數(此示例命令中使用的值是 AOSP 代碼庫中配置的默認值):
adb shell settings put global wifi_score_params \
rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
要恢復內置參數值(即刪除覆蓋),請使用以下 adb 命令:
adb shell settings delete global wifi_score_params