Profilerstellung für Android-Apps

Bevor Sie Ihre App in einem App Store bereitstellen, ist es wichtig, jegliche Leistungsengpässe, Probleme mit übermäßiger Speicherauslastung oder ineffiziente Verwendung von Netzwerkressourcen zu identifizieren und zu beheben. Zu diesem Zweck stehen zwei Profilerstellungstools zu Verfügung:

  • Xamarin Profiler
  • Android Profiler in Android Studio

In diesem Leitfaden wird der Xamarin Profiler vorgestellt und ausführliche Informationen zu den ersten Schritten mit dem Android Profiler bereitgestellt.

Xamarin Profiler

Der Xamarin Profiler ist eine eigenständige Anwendung für die Profilerstellung von Xamarin-Apps innerhalb der IDE, die in Visual Studio und Visual Studio für Mac integriert ist. Weitere Informationen über die Verwendung des Xamarin Profilers finden Sie unter Xamarin Profiler.

Hinweis

Sie benötigen ein Abonnement von Visual Studio Enterprise, um das Xamarin Profiler-Feature in Visual Studio Enterprise unter Windows oder Visual Studio für Mac freizuschalten.

Android Studio Profiler

Ab Android Studio 3.0 ist ein Android Profiler-Tool enthalten. Sie können den Android Profiler verwenden, um die Leistung einer mit Visual Studio erstellten Xamarin Android-App zu messen – ohne dass eine Visual Studio Enterprise Lizenz erforderlich ist. Allerdings ist der Android Profiler im Gegensatz zum Xamarin Profiler nicht in Visual Studio integriert und kann nur für die Profilerstellung eines APK (Android-Anwendungspaket) verwendet werden, das im voraus erstellt und in den Android Profiler importiert wurde.

Starten einer Xamarin Android-App im Android Profiler

In den folgenden Schritten wird erklärt, wie Sie eine Xamarin Android-Anwendung im Android Profiler-Tool von Android Studio starten. In den folgenden Beispiel-Screenshots wird die Xamarin Forms-App XamagonXuzzle erstellt, und die Profilerstellung wird mit dem Android Profiler durchgeführt:

  1. Deaktivieren Sie die Option Shared Runtime verwenden in den Optionen für die Android-Projekterstellung. Damit wird sichergestellt, dass das APK ohne eine Abhängigkeit für die zur Entwicklungszeit freigegebene Mono-Laufzeit erstellt wurde.

    Deaktivieren der Verwendung von Shared Runtime

  2. Erstellen Sie die App zum Debuggen, und stellen Sie diese für ein physisches Gerät oder einen Emulator bereit. Dadurch wird eine signierte Debugversion des Android-Anwendungspakets erstellt. Das im XamagonXuzzle-Beispiel resultierende APK heißt com.companyname.XamagonXuzzle-Signed.apk.

  3. Öffnen Sie den Projektordner, und navigieren Sie zu bin/Debug. Suchen Sie in diesem Ordner die Signed.apk-Version der App, und kopieren Sie diese in einen einfach zugänglichen Ort (z.B. dem Desktop). Im folgenden Screenshot wird gezeigt, wo sich das APK com.companyname.XamagonXuzzle-Signed.apk befindet. Anschließend wird es zum Desktop kopiert:

    Speicherort der signierten APK-Datei für das Debuggen

  4. Starten Sie Android Studio, und klicken Sie auf Profile or debug APK (APK profilieren oder debuggen):

    Starten des Profilers über den Android Studio-Startbildschirm

  5. Navigieren Sie im Dialogfeld Select APK File (APK-Datei auswählen) zu dem Android-Anwendungspaket, das Sie zuvor erstellt und kopiert haben. Wählen Sie die APK aus, und klicken Sie auf OK:

    Auswählen des APK im Dialogfeld APK-Datei auswählen

  6. Android Studio lädt das APK und disassembliert classes.dex:

    Einrichten des APK

  7. Nachdem das APK geladen wurde, zeigt Android Studio den folgenden Projektbildschirm für das APK an. Klicken Sie in der linken Strukturansicht mit der rechten Maustaste auf den Namen der App, und wählen Sie Open Module Settings (Moduleinstellungen öffnen) aus:

    Speicherort des Menüelements

  8. Navigieren Sie zu Module für Projekteinstellungen>, wählen Sie den Knoten -Signiert der App aus, und klicken Sie dann auf <Kein SDK>:

    Navigieren zur SDK-Einstellung

  9. Wählen Sie im Pulldownmenü Modul SDK die Android SDK-Ebene aus, die zum Erstellen der App verwendet wurde (in diesem Beispiel wurde die API-Ebene 26 zum Erstellen von XamagonXuzzle verwendet):

    Festlegen der Project SDK-Ebene

    Klicken Sie auf Anwenden und OK, um diese Einstellung zu speichern.

  10. Starten Sie den Profiler über das Symbol auf der Symbolleiste:

    Speicherort des Symbolleistensymbols für Profiler

  11. Wählen Sie das Bereitstellungsziel für die Ausführung/Profilerstellung der App aus, und klicken Sie auf OK. Das Bereitstellungsziel kann ein physisches Gerät oder ein virtuelles Gerät sein, das auf einem Emulator ausgeführt wird. In diesem Beispiel wird ein Nexus 5X-Gerät verwendet:

    Auswählen des Bereitstellungsziels

  12. Nachdem der Profiler gestartet wurde, dauert es einige Sekunden, bis eine Verbindung zwischen dem Bereitstellungsgerät und dem App-Prozess hergestellt wird. Während der Installation des APK meldet der Android Profiler No connected devices (Keine verbundenen Geräte) und No debuggable processes (Keine debugfähige Prozesse).

    Der Profiler installiert das APK.

  13. Nach einigen Sekunden schließt der Android Profiler die Installation des APK ab, startet das APK und meldet den Gerätenamen und den Namen des App-Prozesses, der profiliert wird (in diesem Beispiel LGE Nexus 5X und com.companyname.XamagonXuzzle):

    Profilerfenster nach dem Start

  14. Nachdem das Gerät und der debugfähige Prozess identifiziert wurden, beginnt der Android Profiler mit der Profilerstellung für die App:

    Profileranzeige für die ausgeführte App

  15. Wenn Sie in XamagonXuzzle auf die Schaltfläche RANDOMIZE (Zufällig) tippen (wodurch Kacheln zufällig neu angeordnet werden), sehen Sie, dass die CPU-Auslastung während dem zufälligen Intervall der App steigt:

    CPU-Auslastung beim Tippen auf die Schaltfläche RANDOMIZE

Verwenden des Android Profilers

Ausführliche Informationen zur Verwendung des Android Profilers finden Sie in der Android Studio-Dokumentation. Die folgenden Themen sind Interessant für Xamarin Android-Entwickler:

  • CPU Profiler : Hier erfahren Sie, wie Sie die CPU-Auslastung und Threadaktivität der App in Echtzeit überprüfen.

  • Memory Profiler : Zeigt ein Echtzeitdiagramm der Speicherauslastung der App an und enthält eine Schaltfläche zum Aufzeichnen von Speicherbelegungen für die Analyse.

  • Network Profiler : Zeigt die Netzwerkaktivität der von der App gesendeten und empfangenen Daten in Echtzeit an.