Aggiungi argomenti di strumentazione

Configura il comportamento della libreria con i seguenti argomenti di strumentazione. Puoi aggiungerli alla configurazione Gradle o applicarli direttamente quando esegui la strumentazione dalla riga di comando. Per impostare questi argomenti per tutte le esecuzioni di test di Android Studio e della riga di comando, aggiungili a testInstrumentationRunnerArguments:

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

Puoi anche impostare argomenti di strumentazione durante l'esecuzione dei benchmark da Android Studio. Per modificare gli argomenti:

  1. Modifica la configurazione di esecuzione facendo clic su Modifica, quindi sulla configurazione.
    modifica configurazione esecuzione
    Figura 1. Modifica la configurazione di esecuzione.
  2. Modifica gli argomenti di strumentazione facendo clic su Altro per Argomenti strumentazione.
    modifica gli argomenti di strumentazione
    Figura 2. Modifica gli argomenti di strumentazione.
  3. Aggiungi l'argomento di strumentazione richiesto facendo clic su Aggiungi in Parametri aggiuntivi della strumentazione.
    aggiungi l'argomento di strumentazione richiesto
    Figura 3. Aggiungi l'argomento di strumentazione richiesto.

Se chiami direttamente dalla riga di comando, utilizza -P android.testInstrumentationRunnerArguments.[name of the argument].

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

androidx.benchmark.compilation.enabled

Consente di disabilitare la compilazione tra ogni iterazione del benchmark. Per impostazione predefinita, l'applicazione di destinazione viene reinstallata e compilata in ogni benchmark, per rispettare il valore CompilationMode trasferito a measureRepeated. Se disabiliti questa opzione, puoi saltare sia la reinstallazione sia la compilazione se, ad esempio, vuoi compilare completamente l'app di destinazione una volta prima di eseguire la suite di test ed eseguire tutti i benchmark sulla destinazione completamente compilata.

  • Tipo di argomento: booleano
  • Il valore predefinito è: true

androidx.benchmark.dryRunMode.enable

Consente di eseguire i benchmark in un singolo loop per verificarne il corretto funzionamento. Puoi utilizzarlo con test regolari nell'ambito della verifica.

  • Tipo di argomento: booleano
  • Il valore predefinito è: false

androidx.benchmark.enabledRules

Consente di filtrare le esecuzioni per un solo tipo di test: generazione del profilo di riferimento o test macrobenchmark. Sono supportati anche gli elenchi separati da virgole.

  • Tipo di argomento: stringa
  • Opzioni disponibili:
    • Macrobenchmark
    • BaselineProfile
  • Valore predefinito: non specificato

androidx.benchmark.junit4.SideEffectRunListener

Potresti ottenere risultati di benchmark incoerenti se viene eseguito il lavoro in background non correlato mentre è in esecuzione il benchmark.

Per disattivare il lavoro in background durante il benchmarking, imposta il tipo di argomento di strumentazione listener su androidx.benchmark.junit4.SideEffectRunListener.

  • Tipo di argomento:stringa.
  • Opzioni disponibili:
    • androidx.benchmark.junit4.SideEffectRunListener
  • Valore predefinito: non specificato

androidx.benchmark.fullTracking.enable

Abilita i punti di traccia androidx.tracing.perfetto come il tracciamento della composizione di Jetpack Compose.

Devi configurare il progetto per poter acquisire il tracciamento della composizione dai benchmark. Per ulteriori informazioni, vedi Acquisire una traccia con Jetpack Macrobenchmark.

  • Tipo di argomento: booleano
  • Il valore predefinito è: false

modalità.profilazione.androidx.benchmark.

Consente di acquisire file di traccia durante l'esecuzione dei benchmark. Le opzioni disponibili sono le stesse per la libreria Microbenchmark. Per ulteriori informazioni, consulta le descrizioni in Profilo a Microbenchmark.

  • Tipo di argomento:stringa.
  • Opzioni disponibili:
    • MethodTracing
    • StackSampling
    • None
  • Il valore predefinito è: None

androidx.benchmark.startupProfiles.enable

Consente di disattivare la generazione di profili iniziali durante il benchmarking.

  • Tipo di argomento: booleano
  • Il valore predefinito è: true

androidx.benchmark.suppressErrors

Accetta un elenco separato da virgole di errori da convertire in avvisi.

  • Tipo di argomento: elenco di stringhe.
  • Opzioni disponibili:

    • DEBUGGABLE

      L'errore DEBUGGABLE indica che il pacchetto di destinazione è in esecuzione con debuggable=true nel file manifest, il che riduce drasticamente le prestazioni di runtime per supportare le funzionalità di debug. Per evitare questo errore, esegui i benchmark con debuggable=false. L'argomento di cui è possibile eseguire il debug influisce sulla velocità di esecuzione, il che significa che i miglioramenti del benchmark potrebbero non essere trasferiti all'esperienza di un utente reale o far regredire le prestazioni della release.

    • LOW-BATTERY

      Quando la batteria è in esaurimento, i dispositivi spesso riducono le prestazioni per risparmiare batteria rimanente, ad esempio disattivando i big core. Questo accade anche quando i dispositivi sono collegati. Elimina questo errore solo se profila deliberatamente l'app con prestazioni ridotte.

    • EMULATOR

      L'errore EMULATOR indica che il benchmark è in esecuzione su un emulatore, che non è rappresentativo dei dispositivi di utenti reali. I miglioramenti del benchmark dell'emulatore potrebbero non essere trasferiti all'esperienza di un utente reale o potrebbero regredire le prestazioni reali del dispositivo. Dovresti usare un dispositivo fisico come benchmark. Elimina questo errore con estrema cautela.

    • NOT-PROFILEABLE

      Il pacchetto di destinazione $packageName è in esecuzione senza <profileable shell=true>. Profileable è obbligatorio su Android 10 e 11 per consentire a Macrobenchmark di acquisire informazioni di traccia dettagliate dal processo di destinazione, ad esempio le sezioni di tracciamento del sistema definite nell'app o nelle librerie. Elimina questo errore con estrema cautela.

    • METHOD-TRACING-ENABLED

      L'esecuzione di Macrobenchmark per l'app sottoposta a benchmark ha il tracciamento dei metodi abilitato. Questo causa un'esecuzione della VM più lenta del solito, quindi considera le metriche dei file di traccia solo in termini relativi, ad esempio confrontando la velocità della prima esecuzione con la seconda. L'eliminazione di questo errore può portare a risultati imprecisi se confronti i benchmark per le build con diverse opzioni di tracciamento del metodo.

  • Il valore predefinito è: un elenco vuoto

testOutputDir aggiuntivo

Consente di configurare dove vengono salvati sul dispositivo i report di benchmark JSON e i risultati di profilazione.

  • Tipo di argomento: stringa del percorso.
  • Impostazione predefinita: directory esterna dell'APK di test