Dodaj argumenty instrumentacji

Skonfiguruj działanie biblioteki, korzystając z poniższych narzędzi . Możesz dodać je do konfiguracji Gradle lub je zastosować bezpośrednio podczas uruchamiania instrumentacji z poziomu wiersza poleceń. Aby ustawić dla wszystkich testów w Android Studio i w wierszu poleceń, dodaj je do testInstrumentationRunnerArguments:

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

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

  1. Aby zmienić konfigurację uruchamiania, kliknij Edytuj, a następnie kliknij konfiguracji.
    edytuj konfigurację uruchomienia
    Rysunek 1. Zmień konfigurację uruchamiania.
  2. Aby edytować argumenty instrumentacji, kliknij Więcej od Argumenty narzędzi.
    edytuj argumenty instrumentacji
    Rysunek 2. Edytuj instrumentację
  3. Kliknij wymagany argument instrumentacji, aby dodać go. Dodaj w sekcji Narzędzia Parametry dodatkowe.
    dodaj wymagany argument instrumentacji
    Rysunek 3. Dodaj wymagane narzędzia .

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. Według domyślnie aplikacja docelowa jest ponownie instalowana i skompilowana testu porównawczego, by uwzględnić dane CompilationMode przekazane measureRepeated Gdy wyłączysz tę opcję, możesz pominąć oba ponowna instalacja i kompilacja, jeśli na przykład chcesz w pełni skompilować plik docelowy przed uruchomieniem pakietu testowego i testowanie porównawczych dla niego 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 do jednego typu testu: generowania profilu podstawowego lub Test porównawczy. 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

Możesz uzyskać niespójne wyniki analizy porównawczej, jeśli w tle wystąpi niepowiązana praca jest wykonywana podczas testu porównawczego.

Aby wyłączyć pracę w tle podczas analizy porównawczej, ustaw listener typ argumentu instrumentacji do 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 usługi androidx.tracing.perfetto, takie jak Jetpack Compose śledzenie kompozycji.

Aby móc rejestrować śledzenie kompozycji, musisz skonfigurować swój projekt na podstawie analiz porównawczych. Więcej informacji znajdziesz w artykule Rejestrowanie śladu za pomocą Jetpacka Analiza porównawcza.

  • 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 biblioteki mikrotestów porównawczych. Więcej informacji a teksty reklamy na Utwórz mikrotest porównawczy.

  • 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 działa z debuggable=true w pliku manifestu, co znacznie skraca czas działania. wydajności, aby obsługiwać funkcje debugowania. Aby uniknąć tego błędu, uruchom polecenie testy porównawcze z wartością debuggable=false. Argument możliwy do debugowania wpływa na argument w taki sposób, że ulepszenia testów porównawczych mogą nie przynosić na wrażenia rzeczywistych użytkowników lub mogą pogorszyć wydajność wersji.

    • LOW-BATTERY

      Gdy bateria jest słaba, urządzenia często zmniejszają wydajność, by zaoszczędzić baterii, na przykład przez wyłączenie dużych rdzeni. Dzieje się tak nawet wtedy, gdy są podłączone urządzenia. Pomijaj ten błąd tylko wtedy, gdy celowo profilowanie aplikacji przy niższej wydajności.

    • EMULATOR

      Błąd EMULATOR informuje, że test porównawczy działa na który nie jest reprezentatywny dla prawdziwych urządzeń użytkowników. Emulator ulepszenia analizy porównawczej mogą nie mieć wpływu na wrażenia rzeczywistego użytkownika. lub może pogorszyć rzeczywistą wydajność urządzenia. Korzystając z szablonu urządzenia do analizy porównawczej. 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 przechwytywanie szczegółowych informacji logu czasu ze środowiska docelowego takich jak sekcje śledzenia systemu zdefiniowane w aplikacji biblioteki. Pomijaj ten błąd z najwyższą ostrożnością.

    • METHOD-TRACING-ENABLED

      Test porównawczy dla testowanej aplikacji zawiera śledzenie metod . W rezultacie maszyna wirtualna działa wolniej niż zwykle, dlatego uwzględniaj dane z plików śledzenia w wyrażeniach względnych, na przykład porównując szybkość pierwszego i drugiego uruchomienia. Pomijam to może skutkować niedokładnymi wynikami, jeśli porównujesz dane porównawcze dla kompilacje z różnymi opcjami śledzenia.

  • Ustawienie domyślne to: pusta lista.

DodatkoweTestyWyjściowe

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

  • Typ argumentu: ciąg znaków ścieżki
  • Ustawienie domyślne: testowanie katalogu zewnętrznego pakietu APK
. .