Dodaj argumenty instrumentacji

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:

  1. Zmień konfigurację uruchamiania, klikając Edytuj, a następnie klikając konfigurację.
    edytuj konfigurację uruchomienia
    Rysunek 1. Zmień konfigurację uruchamiania.
  2. Aby zmodyfikować argumenty instrumentacji, kliknij Więcej obok pozycji Argumenty instrumentacji.
    edytuj argumenty instrumentacji
    Rysunek 2. Edytuj argumenty instrumentacji.
  3. Dodaj wymagany argument instrumentacji, klikając Dodaj w sekcji Dodatkowe parametry instrumentacji.
    dodaj wymagany argument instrumentacji
    Rysunek 3. Dodaj wymagany argument 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 manifestu debuggable=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życiem debuggable=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