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 zum Messen der Leistung einer Xamarin Android-App verwenden, die mit Visual Studio erstellt wurde, ohne dass dazu 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 von „Shared Runtime verwenden“.

  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 zum Debuggen signierten APK-Datei.

  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 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 „Moduleinstellungen öffnen“.

  8. Navigieren Sie zu Projekteinstellungen > Module, wählen Sie den -Signed-Knoten der App aus, und klicken Sie dann auf <No SDK> (Kein SDK):

    Navigieren zur Einstellung für das SDK.

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

    Festlegen der Ebene des SDK für das Projekt.

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

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

    Position des Profiler-Symbols auf der Symbolleiste.

  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):

    Das Fenster des Profilers 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:

    Anzeige des Profilers 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, wenn auf die Schaltfläche „RANDOMIZE“ getippt wird.

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:– Überprüfen der CPU-Auslastung und Threadaktivitäten der App in Echtzeit.

  • Arbeitsspeicherprofiler – Zeigt einen Graph der Arbeitsspeicherauslastung der App in Echtzeit an und enthält eine Schaltfläche zum Aufzeichnen der Speicherbelegungen zur Analyse.

  • Netzwerkprofiler – Zeigt Netzwerkaktivitäten von Daten in Echtzeit an, die durch die App gesendet und empfangen wurden.