Auf dieser Seite wird beschrieben, wie Sie die WLAN-Implementierung mit den in AOSP bereitgestellten Tools testen, beheben und optimieren.
Testen
Zum Testen des WLAN-Frameworks bietet AOSP eine Mischung aus Unit-Tests 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.
WLAN-Manager-Tests:
- Befindet sich in
packages/modules/Wifi/framework/tests/
Führen Sie die Datei mit der folgenden ausführbaren Shell aus. Weitere Ausführungsoptionen finden Sie in der Datei:
atest FrameworksWifiApiTests
WLAN-Diensttests:
- Befindet sich in
packages/modules/Wifi/service/tests/wifitests/
Führen Sie die Datei 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. Sie befinden sich unter cts/tests/tests/net/src/android/net/wifi
. Für die WLAN-CTS-Tests muss das zu testende Gerät zu Beginn des Testlaufs mit einem Zugangspunkt verknüpft sein.
Erweiterte Protokollierungsoptionen für die Fehlerbehebung
In Android 9 wurde die WLAN-Protokollierung verbessert, um WLAN-Probleme leichter beheben zu können. 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 die Wi‑Fi HAL (AIDL- oder HIDL-Version 1.2 oder höher) verwendet wird, werden Firmware-Debug-Puffer im HAL anstelle im Framework 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 prüfen, ob alte Dateien im Verzeichnis für Tombstones gelöscht werden.
- Aktivieren Sie die WLAN-Funktion.
- Stellen Sie eine Verbindung zu einem Netzwerk her.
- Erstellen Sie einen Fehlerbericht.
Prüfe die ZIP-Datei des Fehlerberichts und prüfe, ob die archivierten Firmware-Logs vorhanden sind. Sie finden die Protokolle an den folgenden Speicherorten:
- AIDL HAL: Abschnitt
dumpsys
der Hauptdatei „bugreport“ - HIDL-HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL HAL: Abschnitt
Konfigurationsabstimmung
Um die Signalstärke zu steuern, mit der ein Gerät eine Verbindung zu einem Netzwerk herstellt oder trennt, verwendet das WLAN-Framework die RSSI-Grenzwerte entry (Eintritt) und exit (Austritt).
Die Grenzwerte für Einfahrt und Ausfahrt werden als überladbare Konfigurationsparameter mit den folgenden Namen gespeichert. Dabei bezieht sich der Parameter bad
auf den RSSI-Grenzwert für die Ausfahrt:
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 ermöglicht eine schnellere 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
Wenn Sie die vordefinierten Parameterwerte wiederherstellen möchten (d.h. die Überschreibungen entfernen), verwenden Sie den folgenden adb-Befehl:
adb shell settings delete global wifi_score_params