Na tej stronie opisano, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostarczonych w AOSP.
Testowanie
Aby przetestować strukturę Wi-Fi, AOSP zapewnia mieszankę testów jednostkowych, testów integracyjnych (ACTS) i testów CTS.
Testy jednostkowe
AOSP obejmuje 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:
- Znajduje się w
packages/modules/Wifi/framework/tests/
Uruchom, używając następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonania):
atest FrameworksWifiApiTests
Testy usługi Wi-Fi:
- Znajduje się w
packages/modules/Wifi/service/tests/wifitests/
Uruchom, używając następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonania):
atest FrameworksWifiTests
Zestaw testowy komunikacji Androida
Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testowanie stosów łączności, takich jak Wi-Fi, Bluetooth i usługi komórkowe. Narzędzie do testowania wymaga adb i Pythona i można je znaleźć w tools/test/connectivity/acts
.
Testy ACTS dla Wi-FI można znaleźć w tools/test/connectivity/acts_tests/tests/google/wifi
, z przykładową konfiguracją testu w tym samym katalogu: example_config.json
.
Testy CTS
Zestaw testów zgodności (CTS) zawiera testy platformy Wi-Fi. Znajdują się one w cts/tests/tests/net/src/android/net/wifi
. Testy Wi-Fi CTS wymagają, aby testowane urządzenie było powiązane z punktem dostępowym na początku przebiegu testowego.
Ulepszone opcje rejestrowania na potrzeby debugowania
W systemie Android 9 ulepszono rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W systemie Android 9 lub nowszym bufory pierścieniowe sterownika/oprogramowania sprzętowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie generowane po wykryciu złego stanu (tylko w przypadku debugowania użytkownika i kompilacji eng). Kiedy używana jest Wi-Fi HAL (AIDL lub HIDL w wersji 1.2 lub nowszej), bufory debugowania oprogramowania sprzętowego są przechowywane w warstwie HAL zamiast w strukturze, aby zaoszczędzić na kosztach IPC.
Realizacja
Aby zapoznać się z implementacją referencyjną, zobacz domyślną implementację w warstwie HAL dostawcy.
Możesz wyłączyć rejestrowanie oprogramowania sprzętowego, ustawiając zasób config_wifi_enable_wifi_firmware_debugging
na wartość false.
Test integracyjny (ACTS)
Test integracji można znaleźć pod adresem /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
.
Zweryfikowane zrzuty oprogramowania sprzętowego są zachowywane w odpowiednim katalogu nagrobków w pamięci flash na potrzeby kompilacji debugowania użytkownika. Dumpstate zbiera dane z tego katalogu podczas tworzenia raportu o błędzie.
Test ręczny
Uruchom ten test ręczny, aby sprawdzić, czy stare pliki w katalogu Tombstone są usuwane.
- Włącz Wi-Fi.
- Połączyć się z siecią.
- Wygeneruj raport o błędzie .
Sprawdź plik ZIP raportu o błędzie i sprawdź, czy istnieją zarchiwizowane dzienniki oprogramowania sprzętowego. Dzienniki znajdują się w następujących lokalizacjach:
- AIDL HAL: sekcja
dumpsys
głównego pliku raportu o błędach - HIDL HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL HAL: sekcja
Strojenie konfiguracji
Aby kontrolować siłę sygnału, z jaką urządzenie łączy się z siecią lub odłącza się od niej, struktura Wi-Fi wykorzystuje progi wejściowe i wyjściowe RSSI.
Progi wejściowe i wyjściowe są przechowywane jako przeciążalne parametry konfiguracyjne o następujących nazwach (gdzie bad
parametr odnosi się do progu wyjściowego 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
Parametry są przechowywane w <root>/frameworks/base/core/res/res/values/config.xml
i mogą być przeciążane przy użyciu 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. (Alternatywnie możesz utworzyć kompilację z nowymi nakładkami, ale użycie poleceń adb zapewnia szybszą realizację testów.)
adb shell settings put global wifi_score_params \
[rssi2|rssi5]=<bad>:<entry>:<low>:<good>
Na przykład następujące polecenie konfiguruje nowe parametry progowe (wartości użyte w tym przykładowym poleceniu są wartościami domyślnymi skonfigurowanymi 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 (tj. usunąć przesłonięcia), użyj następującego polecenia adb:
adb shell settings delete global wifi_score_params