Auf dieser Seite wird beschrieben, wie Sie die WLAN-Implementierung mit den in AOSP bereitgestellten Tools testen, debuggen und optimieren.
Testen
Zum Testen des WLAN-Frameworks bietet AOSP eine Mischung aus Einheitentests und CTS-Tests.
Einheitentests
AOSP enthält Funktions- und Unittests für das Standard-WLAN-Framework, sowohl für den WLAN-Manager (App-seitiger Code) als auch für den WLAN-Dienst.
Tests für den WLAN-Manager:
- Befindet sich in
packages/modules/Wifi/framework/tests/
Führen Sie den folgenden Shell-Befehl aus (weitere Ausführungsoptionen finden Sie in der Datei):
atest FrameworksWifiApiTests
Tests für WLAN-Dienste:
- Befindet sich in
packages/modules/Wifi/service/tests/wifitests/
Führen Sie den folgenden Shell-Befehl aus (weitere Ausführungsoptionen finden Sie in der Datei):
atest FrameworksWifiTests
CTS-Tests
Die Compatibility Test 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 Access Point verbunden sein.
Erweiterte Logging-Optionen für die Fehlerbehebung
In Android 9 wurde die WLAN-Protokollierung verbessert, um die Behebung von WLAN-Problemen zu erleichtern. In Android 9 oder höher können Treiber- oder Firmware-Ringpuffer immer aktiviert sein. Fehlerberichte können automatisch ausgelöst werden, wenn ein fehlerhafter Zustand erkannt wird (nur in Userdebug- und Eng-Builds). Wenn das WLAN-HAL (AIDL oder HIDL Version 1.2 oder höher) verwendet wird, werden Firmware-Debug-Puffer im HAL anstelle des Frameworks gespeichert, um IPC-Kosten zu sparen.
Implementierung
Eine Referenzimplementierung finden Sie in der Standardimplementierung im Vendor-HAL.
Sie können die Firmware-Protokollierung 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 Tombstone-Verzeichnis gelöscht werden.
- Aktivieren Sie die WLAN-Funktion.
- Stellen Sie eine Verbindung mit einem Netzwerk her.
- Erstellen Sie einen Fehlerbericht.
Prüfen Sie die ZIP-Datei des Fehlerberichts und vergewissern Sie sich, dass die archivierten Firmware-Logs vorhanden sind. Die Protokolle befinden sich an den folgenden Speicherorten:
- AIDL-HAL:
dumpsys
-Abschnitt der Hauptfehlerberichtsdatei - HIDL-HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL-HAL:
Konfiguration optimieren
Um die Signalstärke zu steuern, bei der ein Gerät sich mit einem Netzwerk verbindet oder die Verbindung zu einem Netzwerk trennt, verwendet das WLAN-Framework die RSSI-Schwellenwerte entry (Eintritt) und exit (Austritt).
Die Grenzwerte für entry (Eintritt) und exit (Austritt) werden als überschreibbare Konfigurationsparameter mit den folgenden Namen gespeichert (wobei sich der Parameter bad
auf den RSSI-Grenzwert 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
überschrieben 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. Die Verwendung von ADB-Befehlen ermöglicht jedoch einen schnelleren Testdurchlauf.
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
Verwenden Sie den folgenden ADB-Befehl, um die integrierten Parameterwerte wiederherzustellen (d.h. die Überschreibungen zu entfernen):
adb shell settings delete global wifi_score_params