Profil der App-Leistung erstellen

Eine Anwendung wird als leistungsschwach eingestuft, wenn sie langsam reagiert, abgehackte Animationen zeigt, sich aufhängt oder zu viel Strom verbraucht. Zur Behebung von Leistungsproblemen musst du Bereiche identifizieren, in denen Ressourcen wie CPU, Arbeitsspeicher, Grafik, Netzwerk oder Geräteakku in deiner App ineffizient genutzt werden.

Verwenden Sie die in diesem Thema beschriebenen Tools und Verfahren zur Profilerstellung und zum Benchmarking, um diese Probleme zu finden und zu beheben. Techniken zum Messen der Leistung und Beispiele für die Verwendung dieser Techniken zur Lösung bestimmter Probleme finden Sie unter Leistung messen.

Android Studio bietet verschiedene Tools zur Profilerstellung, mit denen Sie potenzielle Probleme leichter erkennen und visualisieren können:

  • CPU-Profiler hilft beim Aufspüren von Leistungsproblemen bei der Laufzeit.
  • Arbeitsspeicher-Profiler unterstützt das Verfolgen von Arbeitsspeicherzuweisungen.
  • Der Energie-Profiler zeichnet den Energieverbrauch auf, was zur Entladung des Akkus beitragen kann.

Diese Tools sind mit Android 5.0 (API-Level 21) und höher kompatibel. Weitere Informationen zu den Tools finden Sie auf den anderen Seiten in diesem Abschnitt des Nutzerhandbuchs.

Mit den Jetpack Benchmark-Bibliotheken können verschiedene wichtige Vorgänge in Ihrer Anwendung gemessen werden:

  • Makro-Benchmark: Messen Sie wichtige Anwendungsfälle zur Leistung wie das Starten und Neuzeichnen von Anwendungen, die durch Aktionen wie UI-Animationen oder Scrollen ausgelöst werden.
  • Mikro-Benchmark: Messen Sie die CPU-Kosten bestimmter Funktionen.

Weitere Informationen zu diesen Bibliotheken finden Sie auf der Seite Benchmarking Ihrer App.

Profilierbare Anwendungen

Profileable ist eine in Android Q eingeführte Manifestkonfiguration. Sie kann angeben, ob der Nutzer des Geräts mithilfe von Tools wie Android Studio, Simpleperf und Perfetto für diese Anwendung ein Profil erstellen kann.

Vor dem profileable konnten die meisten Entwickler nur ein Profil für Debug-fähige Apps auf Android erstellen, was zu erheblichen Leistungskosten führte. Diese Leistungskosten können die Ergebnisse der Profilerstellung verfälschen, insbesondere wenn sie zeitabhängig sind. In Tabelle 1 sind die Unterschiede zwischen debug-fähigen und profilfähigen Anwendungen zusammengefasst.

Tabelle 1 Zusammenfassung der wichtigsten Unterschiede zwischen debug-fähigen und profilfähigen Apps.
Funktion Debug-fähig Profilierbar
Speicher-Profiler Voll

Ja:

Nein:

CPU-Profiler Voll

Ja:

Nein:

Netzwerk-Profiler Ja Nein
Energie-Profiler Ja Nein
Strom-Profiler Ja Ja
Ereignisüberwachung Ja Nein

Profileable wurde eingeführt, damit Entwickler zulassen können, dass ihre Anwendungen Informationen für Profilerstellungstools freigeben, wobei sehr geringe Leistungskosten anfallen. Ein APK, für das ein Profil erstellt werden kann, ist im Wesentlichen ein Release-APK mit der Zeile <profileable android:shell="true"/>, die im Abschnitt <application> der Manifestdatei hinzugefügt wird.

Profilfähige App automatisch erstellen und ausführen

Sie können eine profilfähige App mit einem Klick konfigurieren, erstellen und ausführen. Für diese Funktion ist ein virtuelles oder physisches Testgerät erforderlich, auf dem API-Level 29 oder höher ausgeführt wird und auf dem Google Play installiert ist. Klicken Sie zur Verwendung der Funktion auf den Pfeil neben dem Symbol für die Profil-App und wählen Sie eine der beiden Optionen aus:

Profilierbares Build-Menü mit einem Klick
  • Profil „app“ mit geringem Aufwand startet die CPU- und Arbeitsspeicher-Profiler. Im Arbeitsspeicher-Profiler ist nur die Option Native Zuweisungen aufzeichnen aktiviert.

    Profilerstellung mit geringem Aufwand.
  • Profil „app“ mit vollständigen Daten erstellen startet die CPU-, Arbeitsspeicher- und Energie-Profiler.

    Profilerstellung mit vollständigen Daten.

Profilfähige App manuell erstellen und ausführen

Wenn Sie eine profilfähige Anwendung manuell erstellen möchten, müssen Sie zuerst eine Release-Anwendung erstellen und dann deren Manifestdatei aktualisieren. Dadurch wird die Release-Anwendung in eine profilfähige Anwendung umgewandelt. Nachdem Sie die profilfähige Anwendung konfiguriert haben, starten Sie den Profiler und wählen Sie einen profilfähigen Prozess zum Analysieren aus.

Release-App erstellen

So erstellen Sie eine Releaseanwendung zur Profilerstellung:

  1. Signieren Sie Ihre Anwendung mit dem Fehlerbehebungsschlüssel. Fügen Sie dazu der Datei build.gradle Ihrer Anwendung die folgenden Zeilen hinzu. Wenn Sie bereits eine funktionierende Release-Build-Variante haben, können Sie mit dem nächsten Schritt fortfahren.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. Wählen Sie in Android Studio Build > Build Variant... (Build-Variante auswählen...) und dann die Release-Variante aus.

Release in „Profilierbar“ ändern

  1. Konvertieren Sie die obige Release-Anwendung in eine Anwendung, für die ein Profil erstellt werden kann. Öffnen Sie dazu die Datei AndroidManifest.xml und fügen Sie Folgendes in <application> ein. Weitere Informationen finden Sie unter Anwendung für den Release erstellen.

    <profileable android:shell="true"/>

  2. Je nach SDK-Version müssen Sie der Datei build.gradle der Anwendung möglicherweise die folgenden Zeilen hinzufügen.

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

Profil für eine Anwendung erstellen, für die ein Profil erstellt werden kann

So erstellen Sie ein Profil für eine profilfähige App:

  1. Starten Sie die App im Entwicklungsemulator oder auf dem Gerät.

  2. Starten Sie den Profiler in Android Studio, indem Sie Ansicht > Tool-Fenster > Profiler auswählen.

  3. Klicken Sie nach dem Start der Anwendung im Profiler auf die Schaltfläche Pluszeichen für Profilers, um das Drop-down-Menü aufzurufen. Wählen Sie Ihr Gerät und dann unter Andere profilfähige Prozesse den Eintrag der Anwendung aus.

    Menü für Profilerstellung
  4. Der Profiler sollte eine Verbindung zur Anwendung herstellen. Nur die CPU- und Speicher-Profiler sind mit eingeschränkten Funktionen für den Speicher-Profiler verfügbar.

    Sitzungsansicht für Profile
    Menü für Profilerstellung
    Menü für Profilerstellung

Sitzungen

Sie können Profiler-Daten als Sitzungen speichern. Diese werden beibehalten, bis Sie Android Studio beenden. Durch das Aufzeichnen von Profilinformationen in mehreren Sitzungen und das Wechseln zwischen ihnen können Sie die Ressourcennutzung in verschiedenen Szenarien vergleichen.

  • Klicken Sie zum Starten einer neuen Sitzung auf die Schaltfläche Neue Profilerstellungssitzung starten und wählen Sie aus dem angezeigten Drop-down-Menü einen Anwendungsprozess aus.
  • Wenn Sie ein Trace aufzeichnen oder einen Heap-Dump erfassen, fügt Android Studio diese Daten (zusammen mit der Netzwerkaktivität Ihrer App) als separaten Eintrag zur aktuellen Sitzung hinzu.
  • Wenn Sie keine Daten mehr in die aktuelle Sitzung aufnehmen möchten, klicken Sie auf Aktuelle Profilerstellungssitzung beenden .
  • Klicken Sie zum Importieren eines Trace, das aus einer früheren Ausführung von Android Studio exportiert wurde, auf Neue Profiler-Sitzung starten und wählen Sie Aus Datei laden aus.

Zusätzliche Unterstützung für ältere Geräte aktivieren (API-Level < 26)

Damit Ihnen auf einem Gerät mit Android 7.1 oder niedriger zusätzliche Profildaten angezeigt werden können, muss Android Studio Überwachungslogik in Ihre kompilierte App einfügen. Diese zusätzlichen Profildaten umfassen Folgendes:

  • Die Ereigniszeitachse in allen Profiler-Fenstern
  • Die Anzahl der zugewiesenen Objekte in Memory Profiler
  • Ereignisse für die automatische Speicherbereinigung in Memory Profiler
  • Details zu allen übertragenen Dateien in Network Profiler

So aktivieren Sie die zusätzliche Unterstützung für ältere Geräte:

  1. Wählen Sie Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten) aus.
  2. Wählen Sie im linken Bereich Ihr App-Modul aus.
  3. Klicken Sie auf den Tab Profilerstellung und klicken Sie dann auf das Kästchen Zusätzliche Unterstützung für ältere Geräte aktivieren (API-Ebene < 26).
  4. Erstellen Sie Ihre Anwendung noch einmal und führen Sie sie aus.

Das Aktivieren der zusätzlichen Unterstützung für ältere Geräte verlangsamt den Build-Prozess. Sie sollten sie daher nur aktivieren, wenn Sie mit der Profilerstellung für Ihre Anwendung beginnen möchten.

Eigenständige Profiler ausführen

Mit den eigenständigen Android Studio Profilers können Sie ein Profil für Ihre App erstellen, ohne die vollständige Android Studio IDE ausführen zu müssen.

So führen Sie die eigenständigen Profiler aus:

  1. Stellen Sie sicher, dass der Profiler derzeit nicht in Android Studio ausgeführt wird.
  2. Gehen Sie zum Installationsverzeichnis und zum Verzeichnis bin:

    Windows/Linux: studio-installation-folder/bin

    macOS: Die Verwendung von eigenständigen Profilern wird unter macOS nicht unterstützt.

  3. Führen Sie je nach Betriebssystem profiler.exe oder profiler.sh aus. Der Ladebildschirm von Android Studio wird angezeigt. Nach dem Verschwinden des Ladebildschirms wird ein Profiler-Fenster geöffnet.