Acquisisci una traccia del sistema dalla riga di comando

Il comando systrace richiama lo strumento Systrace, che consente di raccogliere e analizzare le informazioni sulle tempistiche per tutti i processi in esecuzione sul dispositivo a livello di sistema.

Questo documento spiega come generare report di Systrace dalla riga di comando. Sui dispositivi con Android 9 (livello API 28) o versioni successive, puoi generare report di Systrace anche utilizzando l'app di sistema System Tracciamento.

Per eseguire systrace, completa i seguenti passaggi:

  1. Da Android Studio, scarica e installa la versione più recente degli strumenti SDK Android.
  2. Installa Python e includilo nella variabile di ambiente PATH della tua workstation.
  3. Aggiungi android-sdk/platform-tools/ alla tua variabile di ambiente PATH. Questa directory contiene il programma binario di Android Debug Bridge (adb), che viene chiamato dal programma systrace.
  4. Collega un dispositivo con Android 4.3 (livello API 18) o versioni successive al tuo sistema di sviluppo utilizzando una connessione di debug USB.

Il comando systrace viene fornito nel pacchetto Android SDK Tools e si trova in android-sdk/platform-tools/systrace/.

Sintassi

Per generare il report HTML per l'app, devi eseguire systrace dalla riga di comando utilizzando la seguente sintassi:

python systrace.py [options] [categories]

Ad esempio, il seguente comando chiama systrace per registrare l'attività del dispositivo e generare un report HTML denominato mynewtrace.html. Questo elenco di categorie è un elenco predefinito ragionevole per la maggior parte dei dispositivi.

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

Suggerimento: per visualizzare i nomi delle attività nell'output della traccia, devi includere la categoria sched nei parametri del comando.

Per visualizzare l'elenco delle categorie supportate dal tuo dispositivo connesso, esegui questo comando:

$ python systrace.py --list-categories

Se non specifichi categorie o opzioni, systrace genera un report che include tutte le categorie disponibili e utilizza le impostazioni predefinite. Le categorie disponibili dipendono dal dispositivo connesso in uso.

Opzioni globali

Opzioni globali Descrizione
-h | --help Mostra il messaggio di aiuto.
-l | --list-categories Elenca le categorie di tracciamento disponibili per il dispositivo connesso.

Comandi e opzioni dei comandi

Comandi e opzioni Descrizione
-o file Scrivi il report della traccia HTML nel file specificato. Se non specifichi questa opzione, systrace salva il report nella stessa directory di systrace.py e lo denomina trace.html.
-t N | --time=N Traccia l'attività del dispositivo per N secondi. Se non specifichi questa opzione, systrace ti chiede di terminare la traccia premendo il tasto Invio dalla riga di comando.
-b N | --buf-size=N Utilizza una dimensione del buffer di traccia di N kilobyte. Questa opzione consente di limitare la dimensione totale dei dati raccolti durante una traccia.
-k functions
| --ktrace=functions
Monitora l'attività di funzioni specifiche del kernel, specificate in un elenco separato da virgole.
-a app-name
| --app=app-name
Abilita il tracciamento per le app, specificate come elenco separato da virgole di nomi di processi. Le app devono contenere chiamate di strumentazione di tracciamento dalla classe Trace. Devi specificare questa opzione ogni volta che profila la tua app. Molte librerie, come RecyclerView, includono chiamate di strumentazione di tracciamento che forniscono informazioni utili quando attivi il tracciamento a livello di app. Per saperne di più, consulta Definire gli eventi personalizzati.

Per tracciare tutte le app su un dispositivo con Android 9 (livello API 28) o versioni successive, inserisci il carattere jolly "*", incluse le virgolette.

--from-file=file-path Crea un report HTML interattivo da un file, ad esempio file TXT che includono dati di traccia non elaborati, anziché eseguire una traccia in tempo reale.
-e device-serial
| --serial=device-serial
Esegui la traccia su un dispositivo connesso specifico, identificato dal numero di serie del dispositivo.
categories Includi informazioni di tracciamento per i processi di sistema specificati, ad esempio gfx per i processi di sistema che eseguono il rendering degli elementi grafici. Puoi eseguire systrace con il comando -l per visualizzare un elenco dei servizi disponibili per il dispositivo connesso.