systrace è un potente strumento che raccoglie informazioni sui tempi dai processi in esecuzione su Android. Ecco come acquisire una traccia di sistema su Android Pie.
Il tracciamento è uno strumento prezioso che consente agli sviluppatori di comprendere l'impatto che le varie modifiche hanno su un sistema e può fornire indizi per identificare la causa principale dei problemi.
systrace è uno strumento di tracciamento così potente che raccoglie informazioni temporali dai processi in esecuzione su un dispositivo Android. systrace è stato ampiamente utilizzato da Squadra per le prestazioni Android presso Google per ottimizzare le prestazioni sui telefoni Google Pixel. ho usato systrace per verificare l'impatto delle modifiche dello scheduler del kernel sul posizionamento delle attività sulle CPU, ad esempio, e per identificare le possibili cause di jank. systrace può acquisire un'ampia varietà di dati, tra cui pianificazione della CPU, frequenza della CPU, I/O del disco, grafica, attività del raccoglitore e molto altro. Le informazioni vengono combinate in un rapporto che può essere analizzato in Google Chrome.
Prima di Android Pie, l'unico modo per acquisire tracce con systrace consisteva nel collegare un dispositivo Android a un computer ed eseguire systrace da lì, solitamente da un terminale. Tuttavia, non tutti hanno accesso costante a un computer o hanno la conoscenza e la sicurezza necessarie per eseguire systrace.
Con il rilascio di Android Pie, questo inconveniente è stato risolto con l'introduzione del Pacchetto Traceur, che è uno strumento che acquisisce dati di traccia grezzi direttamente su un telefono Android. Traceur è disponibile come opzione "Tracciamento del sistema" nelle Opzioni sviluppatore dell'app Impostazioni e i dati di traccia grezzi acquisiti sul dispositivo da Traceur possono in un secondo momento essere convertiti da systrace a un report HTML per l'analisi.
La nuova opzione "Tracciamento del sistema" consente agli utenti di acquisire e condividere facilmente le tracce con gli sviluppatori, senza dover sapere effettivamente come eseguire systrace su un computer. Gli sviluppatori traggono vantaggio dalla possibilità di acquisire tracce senza computer e analizzarle successivamente quando preferiscono. Anche i dati di traccia grezzi completi raccolti da “System Tracing” sono significativamente più piccoli rispetto al report HTML generato da systrace, il che rende quindi i dati di traccia grezzi più adatti all'archiviazione e alla condivisione con altri.
Guida: raccolta del sistema e analisi delle tracce del sistema
Innanzitutto, assicurati di avere un dispositivo con Android Pie e un computer con Python 2 installato. Le seguenti istruzioni sono state eseguite su OnePlus 6 con l'ultima versione beta di OxygenOS Android Pie.
- Abilita le Opzioni sviluppatore nell'app Impostazioni, quindi accedi all'opzione "Tracciamento del sistema". nella sezione "Debug" delle Opzioni sviluppatore.
- All'apertura del Tracciamento del sistema, verrà visualizzato un interruttore per abilitare il Tracciamento del sistema e la possibilità di personalizzare le categorie di tracciamento e la dimensione del buffer delle tracce. Per questa dimostrazione vengono utilizzate le categorie predefinite, sufficienti nella maggior parte dei casi. Un interruttore "Mostra riquadro Impostazioni rapide" consente di avviare/interrompere la traccia tramite Impostazioni rapide. L'ho abilitato per questa guida.
- Per iniziare ad acquisire una traccia, toccare il riquadro delle impostazioni rapide “Registra traccia” aggiunto di recente.
- Una volta terminata la traccia di un caso di test, è possibile interrompere la traccia dall'area notifiche.
- Grande! Hai catturato con successo una traccia grezza. Una notifica ti chiederà di condividere il file di traccia non elaborato. Dovresti essere in grado di salvarlo sul tuo dispositivo, caricarlo nell'archivio online, inviarlo via email a qualcuno, ecc. In alternativa, puoi utilizzare ADB per estrarre direttamente la traccia dal tuo dispositivo al tuo computer (
adb pull /data/local/traces/
). Vai avanti e salva il file di traccia sul tuo computer. - Il file di traccia non elaborato ha il formato formato .ctrace. Non può essere interpretato nella sua forma grezza. Possiamo usare systrace per generare un report HTML interattivo più utile e comprensibile dal nostro file di traccia non elaborato.
- Utilizzeremo l'ultima versione di systrace dal repository del progetto catapulta. In un'applicazione terminale, clona il repository (assicurati che git sia installato):
git clone https://github.com/catapult-project/catapult.git
- Per generare il report HTML dal nostro file di traccia non elaborato utilizzando systrace, inserisci i seguenti comandi:
Verrà generato un file HTML con lo stesso nome del file di traccia non elaborato. Nota: systrace supporta solo Python 2 al momento della scrittura.python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
- Per visualizzare il report HTML, avviare il browser Google Chrome e accedere all'URL "chrome://tracing". Non aprire il report HTML direttamente in Google Chrome perché apparirà vuoto.
- Fare clic su "Carica" e aprire il file di report HTML dalla finestra di dialogo pop-up. Ecco! Il tuo rapporto di traccia è ora disponibile per l'ispezione.
Qual è il prossimo?
Ora che sei in grado di acquisire una traccia e generare un file systrace report, è importante capire come leggere e interpretare i dati presentati nel report. Per cominciare consiglio la lettura”Comprensione Systrace", e guardando"Prestazioni Android: una panoramica (Google I/O '17)" E "Systrace per i giochi" da vedere systrace in azione.
Questo è un guest post originariamente scritto da Josh Choo, noto anche come XDA Recognized Developer gioioso. Il post è stato leggermente modificato per la formattazione.