测试、调试和优化 Wi-Fi

本页面介绍了如何使用 AOSP 中提供的工具测试、调试和调整 Wi-Fi 实现。

测试

为了测试 Wi-Fi 框架,AOSP 提供了一系列单元测试和 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

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(AIDL 或 HIDL 版本 1.2 或更高版本)时,固件调试缓冲区存储在 HAL 中而不是框架中,以节省 IPC 成本。

实现

有关参考实现,请参阅供应商 HAL 中的默认实现

您可以通过将资源 config_wifi_enable_wifi_firmware_debugging 设置为 false 来停用固件日志记录。

手动测试

运行此手动测试以验证 tombstone 目录中的旧文件是否正在被删除。

  1. 开启 Wi-Fi。
  2. 连接到网络。
  3. 生成错误报告
  4. 检查错误报告 Zip 文件,并验证存档的固件日志是否存在。日志位于以下位置

    • AIDL HAL:主错误报告文件的 dumpsys 部分
    • HIDL HAL:/lshal-debug/android.hardware.wifi@1.x::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 命令配置设备来测试新阈值。(或者,您可以创建包含新叠加层的 build,但使用 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