Android 测试、调试和调整 WLAN

本页介绍了如何使用 ASOP 中提供的工具测试、调试和调整 WLAN 实现。

测试

为了测试 WLAN 框架,AOSP 提供了一系列单元测试、集成测试 (ACTS) 和 CTS 测试。

单元测试

AOSP 包括针对默认 WLAN 框架的功能测试和单元测试:这两项测试均适用于 WLAN Manager(应用端代码)和 WLAN 服务。

WLAN 管理器测试:

  • 位于 packages/modules/Wifi/framework/tests/
  • 使用以下 shell 可执行文件运行(有关更多执行选项,请参阅文件):

    atest FrameworksWifiApiTests
    

WLAN 服务测试:

  • 位于 packages/modules/Wifi/service/tests/wifitests/
  • 使用以下 shell 可执行文件运行(有关更多执行选项,请参阅文件):

    atest FrameworksWifiTests
    

Android 通讯测试套件

Android 通讯测试套件 (ACTS) 可以对连接堆栈(例如 WLAN、蓝牙和移动网络服务)自动进行测试。该测试工具需要 adb 和 Python,您可以在以下位置找到该工具:tools/test/connectivity/acts

您可以在以下位置找到针对 WLAN 的 ACTS 测试:tools/test/connectivity/acts_tests/tests/google/wifi,而且同一目录下还包含以下示例测试配置:example_config.json

CTS 测试

兼容性测试套件 (CTS) 包括针对 Wi-Fi 框架的测试。这些测试位于以下位置:cts/tests/tests/net/src/android/net/wifi。WLAN CTS 测试要求在测试开始运行时将被测设备与接入点相关联。

针对调试的增强型日志记录选项

Android 9 改进了 Wi-Fi 日志记录功能,以便更轻松地调试 Wi-Fi 问题。在 Android 9 或更高版本中,驱动程序/固件环形缓冲区可以始终处于开启状态。检测到错误状态时,可以自动触发错误报告(仅限 userdebug build 和 eng build)。如果您使用的是 Wi-Fi HAL(AIDL 或 HIDL 1.2 版或更高版本),则固件调试缓冲区存储在 HAL 中而不是框架内,以节省 IPC 开销。

实现

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

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

集成测试 (ACTS)

您可以在以下位置找到集成测试:/tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py

对于 userdebug build,已验证的固件转储会保留在闪存中相应的 tombstone 目录下。在创建 bug 报告时,Dumpstate 从这个目录收集相应信息。

手动测试

运行以下手动测试,以验证 tombstone 目录中的旧文件是否已被删除。

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

    • AIDL HAL:主 bug 报告文件的 dumpsys 部分
    • HIDL HAL:/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

配置调整

为了控制设备在与网络建立关联和取消关联时采用的信号强度,Wi-Fi 框架使用了“entry”和“exit”RSSI 阈值。

系统会将“entry”和“exit”阈值存储为可重载的配置参数,并使用以下名称(其中 bad 参数是指“exit”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 重载这些参数。

注意:Android 8.1 之前的版本中引入了 bad 配置参数(适用于 2.4GHz 和 5GHz 频段)。Android 8.1 中又引入了 entry 配置参数,其默认值等于对应的 bad 参数。这些默认值会导致出现 Android 8.1 之前的版本中的行为,即系统在选择网络时不使用迟滞功能。为了充分利用 Android 8.1 中引入的迟滞功能,请使用上文中指定的覆盖文件将 entry 参数设为 3dB 或比 bad 参数更高的值。

您可以使用 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

如需恢复内置的参数值(即取消替换),请使用以下 abd 命令:

adb shell settings delete global wifi_score_params
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值