Skonfiguruj działanie biblioteki, używając podanych niżej argumentów instrumentacyjnych. Możesz dodać je do konfiguracji Gradle lub zastosować je bezpośrednio podczas uruchamiania instrumentacji z poziomu wiersza poleceń. Aby ustawić te argumenty dla wszystkich testów w Android Studio i testów wiersza poleceń, dodaj je do projektu testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Możesz też skonfigurować argumenty instrumentacji podczas uruchamiania testów porównawczych w Android Studio. Aby zmienić argumenty, wykonaj te czynności:
- Zmień konfigurację uruchamiania, klikając Edytuj, a następnie klikając konfigurację.
- Aby zmodyfikować argumenty instrumentacji, kliknij Więcej obok pozycji Argumenty instrumentacji.
- Dodaj wymagany argument instrumentacji, klikając Dodaj w sekcji Dodatkowe parametry instrumentacji.
Jeśli dzwonisz bezpośrednio z wiersza poleceń, użyj -P
android.testInstrumentationRunnerArguments.[name of the argument]
.
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.benchmark.compilation.enabled
Umożliwia wyłączenie kompilacji po każdej iteracji testu porównawczego. Domyślnie aplikacja docelowa jest ponownie instalowana i kompilowana w przypadku każdego testu porównawczego, aby uwzględnić dane CompilationMode
przekazane do measureRepeated
. Wyłączenie tej opcji pozwala pominąć zarówno ponowną instalację, jak i kompilację, jeśli na przykład chcesz w pełni skompilować aplikację docelową raz przed uruchomieniem pakietu testowego i wykonać wszystkie testy względem tego w pełni skompilowanego celu.
- Typ argumentu: wartość logiczna
- Wartość domyślna:
true
androidx.benchmark.dryRunMode.enable
Pozwala przeprowadzać testy porównawcze w 1 pętli, aby sprawdzić, czy działają prawidłowo. Możesz go używać w ramach regularnych testów w ramach weryfikacji.
- Typ argumentu: wartość logiczna
- Wartość domyślna:
false
androidx.benchmark.enabledRules
Umożliwia filtrowanie uruchomień tylko w ramach jednego typu testu: generowania profilu podstawowego lub testu porównawczego. Obsługiwane są również listy rozdzielane przecinkami.
- Typ argumentu: ciąg znaków
- Dostępne opcje:
Macrobenchmark
BaselineProfile
- Wartość domyślna: nie określono
androidx.benchmark.junit4.SideEffectRunListener
Jeśli w trakcie przeprowadzania testu porównawczego wykonywane są niepowiązane zadania w tle, możesz uzyskać niespójne wyniki testu porównawczego.
Aby wyłączyć działanie w tle podczas analizy porównawczej, ustaw listener
typ argumentu instrumentu na androidx.benchmark.junit4.SideEffectRunListener
.
- Typ argumentu: ciąg znaków
- Dostępne opcje:
androidx.benchmark.junit4.SideEffectRunListener
- Wartość domyślna: nie określono
androidx.benchmark.fullTracking.enable
Włącza punkty śledzenia androidx.tracing.perfetto
, takie jak śledzenie kompozycji w Jetpack Compose.
Musisz skonfigurować swój projekt, aby móc rejestrować kompozycje na podstawie testów porównawczych. Więcej informacji znajdziesz w artykule na temat rejestrowania logu czasu przy użyciu Jetpack Macrobenchmark.
- Typ argumentu: wartość logiczna
- Domyślna wartość:
false
androidx.benchmark.profilowanie.mode
Umożliwia przechwytywanie plików śledzenia podczas przeprowadzania testów porównawczych. Dostępne opcje są takie same jak w przypadku biblioteki mikrotestów porównawczych. Więcej informacji znajdziesz w opisach w artykule Profilowanie mikrotestów.
- Typ argumentu: ciąg znaków
- Dostępne opcje:
MethodTracing
StackSampling
None
- Wartość domyślna:
None
androidx.benchmark.startupProfiles.enable
Umożliwia wyłączenie generowania profili startupów podczas testów porównawczych.
- Typ argumentu: wartość logiczna
- Wartość domyślna:
true
androidx.benchmark.suppressErrors,
Akceptuje rozdzieloną przecinkami listę błędów, które zmieniają się w ostrzeżenia.
- Typ argumentu: lista ciągów znaków
Dostępne opcje:
DEBUGGABLE
Błąd
DEBUGGABLE
oznacza, że pakiet docelowy jest uruchomiony z plikiem manifestudebuggable=true
, co znacznie zmniejsza wydajność środowiska wykonawczego, aby umożliwić obsługę funkcji debugowania. Aby uniknąć tego błędu, uruchom testy porównawcze z użyciemdebuggable=false
. Argument możliwy do debugowania wpływa na szybkość wykonywania w taki sposób, że ulepszenia analizy porównawczej mogą nie mieć wpływu na wrażenia rzeczywistego użytkownika lub mogą pogorszyć wydajność wersji.LOW-BATTERY
Gdy bateria jest słaba, urządzenia często zmniejszają wydajność, by oszczędzać baterię. Dzieje się tak na przykład przez wyłączenie dużych rdzeni. Dzieje się tak nawet wtedy, gdy urządzenia są podłączone do zasilania. Blokuj ten błąd tylko wtedy, gdy celowo profilujesz aplikację przy zmniejszonej wydajności.
EMULATOR
Błąd
EMULATOR
informuje, że test porównawczy działa w emulatorze, który nie jest reprezentatywny dla prawdziwych urządzeń użytkowników. Udoskonalenia testów porównawczych emulatora mogą nie zostać przeniesione na rzeczywiste wrażenia użytkownika lub mogą pogorszyć rzeczywistą wydajność urządzenia. Do analizy porównawczej użyj urządzenia fizycznego. Pomijaj ten błąd z najwyższą ostrożnością.NOT-PROFILEABLE
Pakiet docelowy
$packageName
działa bez<profileable shell=true>
. Profilowalność jest wymagana w Androidzie 10 i 11, aby umożliwić usłudze Macrobenchmark rejestrowanie szczegółowych informacji logu czasu z procesu docelowego, takich jak sekcje śledzenia systemu zdefiniowane w aplikacji lub bibliotekach. Pomijaj ten błąd z najwyższą ostrożnością.METHOD-TRACING-ENABLED
Uruchomienie w ramach testu porównawczego dla testowanej aplikacji ma włączone śledzenie metod. Powoduje to, że maszyna wirtualna działa wolniej niż zwykle, dlatego wskaźniki z plików śledzenia uwzględniaj tylko w postaci względnej, na przykład porównując szybkość pierwszego uruchomienia do drugiego. Pominięcie tego błędu może skutkować niedokładnymi wynikami w przypadku porównywania testów porównawczych kompilacji z różnymi opcjami śledzenia metod.
Ustawienie domyślne to: pusta lista.
DodatkoweTestyWyjściowe
Konfiguruje miejsce zapisywania na urządzeniu raportów analizy porównawczej JSON i wyników profilowania.
- Typ argumentu: ciąg znaków ścieżki
- Ustawienie domyślne: testowanie katalogu zewnętrznego pakietu APK
Polecane dla Ciebie
- Uwaga: tekst linku wyświetla się, gdy JavaScript jest wyłączony
- Argumenty instrumentacji mikrotestów
- Tworzenie profili podstawowych
- Biblioteka JannkStats