Dodaj argumenty instrumentacji

Skonfiguruj działanie biblioteki za pomocą podanych niżej argumentów instrumentacji. Możesz je dodać do konfiguracji Gradle lub zastosować bezpośrednio podczas uruchamiania narzędzi z poziomu wiersza poleceń. Aby ustawić te argumenty dla wszystkich uruchomień testowych Androida Studio i uruchomień wiersza poleceń, dodaj je do testInstrumentationRunnerArguments:

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

Argumenty instrumentacji możesz też skonfigurować podczas wykonywania testów porównawczych w Android Studio. Aby zmienić argumenty, wykonaj te czynności:

  1. Zmień konfigurację uruchomienia. Aby to zrobić, kliknij Edytuj, a następnie wybierz konfigurację.
    edytuj konfigurację uruchomienia
    Rysunek 1. Edytuj konfigurację uruchamiania.
  2. Aby edytować argumenty instrumentacji, kliknij Więcej obok opcji Argumenty instrumentacji.
    edytuj argumenty instrumentacji
    Rysunek 2. Zmień 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łączanie kompilacji między poszczególnymi iteracjami testu porównawczego. Domyślnie aplikacja docelowa jest ponownie instalowana i kompilowana między wszystkimi testami porównawczymi, aby uwzględnić CompilationMode przekazane w 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ą przed uruchomieniem pakietu testowego i przeprowadzić testy porównawcze z wykorzystaniem w pełni skompilowanego celu.

  • Typ argumentu: wartość logiczna
  • Wartość domyślna: true

androidx.benchmark.dryRunMode.enable

Umożliwia przeprowadzanie analiz porównawczych w ramach jednej pętli w celu sprawdzenia, czy działają one prawidłowo. Możesz jej używać podczas zwykłych testów w ramach weryfikacji.

  • Typ argumentu: wartość logiczna
  • Wartość domyślna: false

androidx.benchmark.enabledReguły

Umożliwia filtrowanie uruchomień tylko w jednym typie testu: generowanie profilu podstawowego lub test porównawczy makr. Listy rozdzielane przecinkami są również obsługiwane.

  • Typ argumentu: ciąg znaków
  • Dostępne opcje:
    • Macrobenchmark
    • BaselineProfile
  • Wartość domyślna: nie określono

androidx.benchmark.junit4.SideEffectRunListener

Wyniki testów porównawczych mogą być niespójne, jeśli w trakcie testu nie są wykonywane niepowiązane prace w tle.

Aby wyłączyć działanie w tle podczas analizy porównawczej, ustaw typ argumentu listenerinstrumentation 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.perfettoSdkTracking.enable

Włącza punkty śledzenia androidx.tracing.perfetto, takie jak śledzenie kompozycji w Jetpack Compose. Ma to zastosowanie tylko wtedy, gdy nie jest używana metoda StartupMode.COLD, ponieważ włączenie punktów śledzenia wybudza proces docelowy.

  • Typ argumentu: wartość logiczna
  • Wartość domyślna: false

androidx.benchmark.profiling.mode

Umożliwia przechwytywanie plików śledzenia podczas przeprowadzania testów porównawczych. Dostępne opcje są takie same jak w przypadku biblioteki mikroporównawczych. Więcej informacji znajdziesz w opisach w sekcji Profile a mikroporównanie.

  • 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 mogą zamienić się w ostrzeżenia.

  • Typ argumentu: lista ciągów tekstowych.
  • Dostępne opcje:

    • DEBUGGABLE

      Błąd DEBUGGABLE oznacza, że w swoim manifeście pakiet docelowy zawiera parametr debuggable=true, co znacznie zmniejsza wydajność środowiska wykonawczego, co pozwala na obsługę funkcji debugowania. Aby uniknąć tego błędu, uruchom testy porównawcze z użyciem funkcji debuggable=false. Argument możliwy do debugowania wpływa na szybkość wykonywania w sposób, co oznacza, że ulepszenia testu porównawczego mogą nie zostać przeniesione w rzeczywiste wrażenia użytkownika lub pogorszyć wydajność wersji.

    • LOW-BATTERY

      Gdy bateria jest słaba, urządzenia często zmniejszają wydajność, aby zaoszczędzić pozostałą baterię, na przykład przez wyłączenie dużych rdzeni. Dzieje się tak nawet wtedy, gdy urządzenia są podłączone do zasilania. Ogranicz ten błąd tylko wtedy, gdy celowo profilujesz aplikację o zmniejszonej wydajności.

    • EMULATOR

      Błąd EMULATOR oznacza, że test porównawczy jest uruchomiony w emulatorze, który nie jest reprezentatywny dla prawdziwych urządzeń użytkowników. Ulepszenia testów porównawczych emulatorów mogą nie mieć wpływu na wrażenia rzeczywistego użytkownika lub pogorszyć wydajność urządzenia. Użyj do tego urządzenia fizycznego. Unikaj tego błędu z rozwagą.

    • NOT-PROFILEABLE

      Pakiet docelowy $packageName działa bez <profileable shell=true>. Profilowanie jest wymagane w Androidzie 10 i 11, aby narzędzie Macroporównanie mogło rejestrować szczegółowe dane śledzenia z procesu docelowego, takie jak sekcje śledzenia systemu zdefiniowane w aplikacji lub w bibliotekach. Unikaj tego błędu z rozwagą.

    • METHOD-TRACING-ENABLED

      Uruchomienie testów porównawczych makr dla aplikacji objętej testem porównawczym ma włączone śledzenie metod. Powoduje to, że maszyna wirtualna działa wolniej niż zwykle, więc wskaźniki z plików śledzenia traktuj tylko w sposób względny, na przykład porównując szybkość pierwszego uruchomienia z drugim. eliminacja tego błędu może skutkować niedokładnymi wynikami w przypadku porównywania testów porównawczych kompilacji z różnymi opcjami śledzenia metod.

  • Wartość domyślna: pusta lista

dodatkowy test wyjściowy

Konfiguruje miejsce zapisywania na urządzeniu raportów porównawczych JSON i wyników profilowania.

  • Typ argumentu: ciąg znaków ścieżki
  • Wartość domyślna: sprawdź zewnętrzny katalog pakietu APK