System-Trace in der Befehlszeile erfassen

Der Befehl systrace ruft das Systrace-Tool auf, mit dem Sie Zeitinformationen für alle Prozesse, die auf Ihrem Gerät auf Systemebene ausgeführt werden, erfassen und prüfen können.

In diesem Dokument wird erläutert, wie Sie Systrace-Berichte über die Befehlszeile generieren. Auf Geräten mit Android 9 (API-Level 28) oder höher können Sie Systrace-Berichte auch mit der System-App für das System-Tracing generieren.

Führen Sie die folgenden Schritte aus, um systrace auszuführen:

  1. Laden Sie aus Android Studio die neuesten Android SDK-Tools herunter und installieren Sie sie.
  2. Installieren Sie Python und fügen Sie es in die PATH-Umgebungsvariable Ihrer Workstation ein.
  3. Fügen Sie der Umgebungsvariablen PATH android-sdk/platform-tools/ hinzu. Dieses Verzeichnis enthält die Android Debug Bridge-Binärdatei (adb), die vom Programm systrace aufgerufen wird.
  4. Verbinde ein Gerät mit Android 4.3 (API-Level 18) oder höher über eine USB-Debugging-Verbindung mit deinem Entwicklungssystem.

Der Befehl systrace ist im Android SDK Tools-Paket enthalten und befindet sich in android-sdk/platform-tools/systrace/.

Syntax

Zum Generieren des HTML-Berichts für die App müssen Sie systrace über die Befehlszeile ausführen. Verwenden Sie dazu die folgende Syntax:

python systrace.py [options] [categories]

Mit dem folgenden Befehl wird beispielsweise systrace aufgerufen, um die Geräteaktivität aufzuzeichnen und einen HTML-Bericht mit dem Namen mynewtrace.html zu generieren. Diese Liste der Kategorien ist eine gute Standardliste für die meisten Geräte.

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

Tipp:Wenn Sie die Namen von Aufgaben in der Trace-Ausgabe sehen möchten, müssen Sie die Kategorie sched in die Befehlsparameter aufnehmen.

Führen Sie den folgenden Befehl aus, um die Liste der Kategorien aufzurufen, die Ihr verbundenes Gerät unterstützt:

$ python systrace.py --list-categories

Wenn Sie keine Kategorien oder Optionen angeben, erstellt systrace einen Bericht, der alle verfügbaren Kategorien enthält und Standardeinstellungen verwendet. Die verfügbaren Kategorien hängen vom verbundenen Gerät ab, das Sie verwenden.

Globale Optionen

Globale Optionen Beschreibung
-h | --help Zeigen Sie die Hilfemeldung an.
-l | --list-categories Listet die Tracing-Kategorien auf, die für Ihr verbundenes Gerät verfügbar sind.

Befehle und Befehlsoptionen

Befehle und Optionen Beschreibung
-o file Schreibt den HTML-Trace-Bericht im angegebenen file. Wenn Sie diese Option nicht angeben, speichert systrace den Bericht im selben Verzeichnis wie systrace.py und gibt ihm den Namen trace.html.
-t N | --time=N Verfolgen Sie die Geräteaktivität N Sekunden lang. Wenn Sie diese Option nicht angeben, werden Sie von systrace aufgefordert, den Trace durch Drücken der Eingabetaste in der Befehlszeile zu beenden.
-b N | --buf-size=N Tracepuffer-Größe von N Kilobyte verwenden Mit dieser Option können Sie die Gesamtgröße der während eines Trace erfassten Daten begrenzen.
-k functions
| --ktrace=functions
Verfolgen Sie die Aktivität bestimmter Kernelfunktionen, die in einer durch Kommas getrennten Liste angegeben sind.
-a app-name
| --app=app-name
Aktiviert das Tracing für Anwendungen, angegeben als durch Kommas getrennte Liste von Prozessnamen. Die Anwendungen müssen Aufrufe von Tracing-Instrumentierungen aus der Klasse Trace enthalten. Sie sollten diese Option immer dann angeben, wenn Sie ein Profil für Ihre Anwendung erstellen. Viele Bibliotheken wie RecyclerView enthalten Tracing-Instrumentierungsaufrufe, die nützliche Informationen liefern, wenn Sie Tracing auf Anwendungsebene aktivieren. Weitere Informationen finden Sie unter Benutzerdefinierte Ereignisse definieren.

Wenn Sie alle Apps auf einem Gerät mit Android 9 (API-Level 28) oder höher verfolgen möchten, übergeben Sie das Platzhalterzeichen "*" (einschließlich der Anführungszeichen).

--from-file=file-path Erstellen Sie einen interaktiven HTML-Bericht aus einer Datei, z. B. TXT-Dateien, die Trace-Rohdaten enthalten, anstatt einen Live-Trace auszuführen.
-e device-serial
| --serial=device-serial
Führen Sie das Trace auf einem bestimmten verbundenen Gerät durch, das anhand seiner Geräte-Seriennummer identifiziert wird.
categories Fügen Sie Tracing-Informationen für die von Ihnen angegebenen Systemprozesse hinzu, z. B. gfx für Systemprozesse, die Grafiken rendern. Sie können systrace mit dem Befehl -l ausführen, um eine Liste der Dienste aufzurufen, die für Ihr verbundenes Gerät verfügbar sind.