Z tego artykułu dowiesz się, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostępnych w AOSP.
Testowanie
Aby przetestować platformę Wi-Fi, AOSP udostępnia mieszankę testów jednostkowych i testów CTS.
Testy jednostkowe
AOSP zawiera testy funkcjonalne i jednostkowe domyślnej struktury Wi-Fi: zarówno dla Menedżera Wi-Fi (kod po stronie aplikacji), jak i Usługi Wi-Fi.
Testy Menedżera Wi-Fi:
- Lokalizacja:
packages/modules/Wifi/framework/tests/
Uruchom za pomocą tego pliku wykonywalnego powłoki (więcej opcji wykonania znajdziesz w pliku):
atest FrameworksWifiApiTests
Testy usługi Wi-Fi:
- Lokalizacja:
packages/modules/Wifi/service/tests/wifitests/
Uruchom za pomocą tego pliku wykonywalnego powłoki (więcej opcji wykonania znajdziesz w pliku):
atest FrameworksWifiTests
Testy CTS
Compatibility Test Suite (CTS) zawiera testy struktury Wi-Fi. Znajdują się one w cts/tests/tests/net/src/android/net/wifi
. Testy CTS Wi-Fi wymagają, aby na początku testu urządzenie było połączone z punktem dostępu.
Ulepszone opcje logowania na potrzeby debugowania
W Androidzie 9 ulepszyliśmy rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W Androidzie 9 lub nowszym bufory pierścieniowe sterownika lub oprogramowania sprzętowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie wywoływane po wykryciu nieprawidłowego stanu (tylko w wersjach userdebug i eng). Gdy używany jest interfejs HAL Wi-Fi (AIDL lub HIDL w wersji 1.2 lub nowszej), bufory debugowania oprogramowania układowego są przechowywane w interfejsie HAL zamiast w frameworku, aby obniżyć koszty IPC.
Implementacja
Implementację referencyjną znajdziesz w domyślnej implementacji w warstwie HAL dostawcy.
Rejestrowanie oprogramowania układowego możesz wyłączyć, ustawiając wartość zasobu config_wifi_enable_wifi_firmware_debugging
na false.
Test ręczny
Uruchom ten test ręczny, aby sprawdzić, czy stare pliki w katalogu tombstone są usuwane.
- Włącz Wi-Fi.
- Połącz się z siecią.
- Wygeneruj raport o błędzie.
Sprawdź plik ZIP z raportem o błędzie i upewnij się, że zawiera on zarchiwizowane dzienniki oprogramowania. Dzienniki znajdują się w tych lokalizacjach:
- AIDL HAL: sekcja
dumpsys
w głównym pliku raportu o błędzie - HIDL HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL HAL: sekcja
Dostrajanie konfiguracji
Aby kontrolować siłę sygnału, przy której urządzenie łączy się z siecią lub odłącza od niej, platforma Wi-Fi używa progów RSSI wejścia i wyjścia.
Progi wejścia i wyjścia są przechowywane jako parametry konfiguracji, które można zastąpić, o tych nazwach (gdzie parametr bad
odnosi się do progu RSSI wyjścia):
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
Parametry są przechowywane w <root>/frameworks/base/core/res/res/values/config.xml
i mogą być przeciążone za pomocą pliku nakładki <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml
.
Możesz przetestować nowe progi, konfigurując urządzenie za pomocą poleceń adb. (Możesz też utworzyć kompilację z nowymi nakładkami, ale użycie poleceń adb zapewni szybsze testowanie).
adb shell settings put global wifi_score_params \
[rssi2|rssi5]=<bad>:<entry>:<low>:<good>
Na przykład to polecenie konfiguruje nowe parametry progowe (wartości użyte w tym przykładowym poleceniu to skonfigurowane wartości domyślne w bazie kodu AOSP):
adb shell settings put global wifi_score_params \
rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
Aby przywrócić wartości wbudowanych parametrów (czyli usunąć zastąpienia), użyj tego polecenia adb:
adb shell settings delete global wifi_score_params