Profiling Android Apps (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 Beispielfotos wird eine Xamarin Forms-Beispiel-App mit Android Profiler erstellt und profiliert:
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.
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.
Ö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:
Starten Sie Android Studio, und klicken Sie auf Profile or debug APK (APK profilieren oder debuggen):
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:
Android Studio lädt das APK und disassembliert classes.dex:
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:
Navigieren Sie zu Project Einstellungen > Modules, wählen Sie den Knoten "-Signed" der App aus, und klicken Sie dann auf <"No SDK>":
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):
Klicken Sie auf Anwenden und OK, um diese Einstellung zu speichern.
Starten Sie den Profiler über das Symbol auf der Symbolleiste:
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:
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).
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):
Nachdem das Gerät und der debugfähige Prozess identifiziert wurden, beginnt der Android Profiler mit der Profilerstellung für die App:
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:
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 – Erläutert, wie die CPU-Auslastung und Threadaktivität der App in Echtzeit untersucht werden.
Memory Profiler – Zeigt ein Echtzeitdiagramm der Speicherauslastung der App an und enthält eine Schaltfläche zum Aufzeichnen von Speicherzuweisungen für die Analyse.
Network Profiler – Zeigt die Echtzeit-Netzwerkaktivität der von der App gesendeten und empfangenen Daten an.