WLAN testen, debuggen und optimieren

Auf dieser Seite wird beschrieben, wie du die WLAN-Implementierung mit den in AOSP bereitgestellten Tools testen, debuggen und optimieren kannst.

Testen

Zum Testen des WLAN-Frameworks bietet AOSP eine Mischung aus Unit- und CTS-Tests.

Einheitentests

AOSP umfasst Funktions- und Einheitentests für das standardmäßige WLAN-Framework: sowohl für den Wi-Fi Manager (App-seitiger Code) als auch für den WLAN-Dienst.

Wi-Fi Manager-Tests:

  • Befindet sich in packages/modules/Wifi/framework/tests/
  • Führen Sie die Ausführung mit der folgenden ausführbaren Shell aus. Weitere Ausführungsoptionen finden Sie in der Datei:

    atest FrameworksWifiApiTests
    

WLAN-Tests:

  • Befindet sich in packages/modules/Wifi/service/tests/wifitests/
  • Führen Sie die Ausführung mit der folgenden ausführbaren Shell aus. Weitere Ausführungsoptionen finden Sie in der Datei:

    atest FrameworksWifiTests
    

CTS-Tests

Die Kompatibilitätstest-Suite (CTS) enthält Tests für das WLAN-Framework. Diese befinden sich in cts/tests/tests/net/src/android/net/wifi. Für die Wi-Fi-CTS-Tests muss das zu testende Gerät zu Beginn des Testlaufs einem Zugangspunkt zugeordnet sein.

Erweiterte Logging-Optionen für die Fehlerbehebung

Unter Android 9 wurde die WLAN-Protokollierung verbessert, um die Fehlerbehebung von WLAN-Problemen zu vereinfachen. Ab Android 9 können Treiber- oder Firmware-Ringpuffer immer aktiviert sein. Fehlerberichte können automatisch ausgelöst werden, wenn ein fehlerhafter Status erkannt wird (nur in Nutzer-Debug- und Entwickler-Builds). Wenn der Wi-Fi-HAL (AIDL oder HIDL Version 1.2 oder höher) verwendet wird, werden die Zwischenspeicher für die Fehlerbehebung der Firmware im HAL anstelle des Frameworks gespeichert, um IPC-Kosten zu sparen.

Implementierung

Eine Referenzimplementierung finden Sie in der Standardimplementierung im Anbieter-HAL.

Sie können das Firmware-Logging deaktivieren, indem Sie die Ressource config_wifi_enable_wifi_firmware_debugging auf „false“ setzen.

Manueller Test

Führen Sie diesen manuellen Test aus, um zu überprüfen, ob alte Dateien im Tombstone-Verzeichnis gelöscht werden.

  1. Aktivieren Sie die WLAN-Funktion.
  2. Stellen Sie eine Verbindung zu einem Netzwerk her.
  3. Erstellen Sie einen Fehlerbericht.
  4. Prüfen Sie die ZIP-Datei mit dem Fehlerbericht und achten Sie darauf, dass die archivierten Firmwareprotokolle vorhanden sind. Die Logs befinden sich an den folgenden Speicherorten:

    • AIDL HAL: Abschnitt dumpsys der Hauptdatei mit dem Fehlerbericht
    • HIDL-HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Konfigurationsabstimmung

Zur Steuerung der Signalstärke, bei der ein Gerät mit einem Netzwerk verbunden oder davon getrennt wird, verwendet das WLAN-Framework die RSSI-Schwellenwerte entry und exit.

Die Schwellenwerte entry und exit werden als überlädbare Konfigurationsparameter mit den folgenden Namen gespeichert (wobei sich der Parameter bad auf den RSSI-Schwellenwert für exit bezieht):

  • 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

Die Parameter werden in <root>/frameworks/base/core/res/res/values/config.xml gespeichert und können mit der Overlay-Datei <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml überlastet werden.

Sie können neue Grenzwerte testen, indem Sie das Gerät mit ADB-Befehlen konfigurieren. (Alternativ können Sie einen Build mit neuen Overlays erstellen, aber die Verwendung von ADB-Befehlen führt zu einer kürzeren Testdurchlaufzeit.)

adb shell settings put global wifi_score_params \
                             [rssi2|rssi5]=<bad>:<entry>:<low>:<good>

Mit dem folgenden Befehl werden beispielsweise neue Schwellenwertparameter konfiguriert (die in diesem Beispielbefehl verwendeten Werte sind die konfigurierten Standardwerte in der AOSP-Codebasis):

adb shell settings put global wifi_score_params \
                       rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57

Mit dem folgenden ADB-Befehl können Sie die integrierten Parameterwerte wiederherstellen (d.h. die Überschreibungen entfernen):

adb shell settings delete global wifi_score_params