Advertisement
  1. Code
  2. Android SDK

6 Gebote und Verbote für eine großartige Android-Benutzererfahrung

Scroll to top
Read Time: 24 min

German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)

Die beliebtesten Android-Apps haben eines gemeinsam: Sie alle bieten ein großartiges Benutzererlebnis. In diesem Beitrag werde ich einige Tipps geben, die Ihrer App helfen, sich von der Masse abzuheben.

Unabhängig von der Art der App, die Sie im Sinn haben, oder Ihrer Zielgruppe, kann die Gestaltung einer großartigen Benutzererfahrung dazu beitragen, dass Ihre App ein Erfolg wird. In diesem Artikel werde ich sechs Dinge teilen, die Sie tun und nicht tun sollten, um sicherzustellen, dass Ihre App Ihren Endbenutzern das bestmögliche Erlebnis bietet.

Da das Erstellen und Starten einer Android-App ein mehrstufiger Prozess ist, werde ich jeden Teil des Android-Entwicklungslebenszyklus ansprechen – von schwierigen Entscheidungen darüber, welche Android-Versionen Sie unterstützen sollten, bis hin zur Entwicklung eines Produkts, das anspricht ein globales Publikum, bis hin zur Analyse der Leistung Ihrer App nach dem Start.

1. Hängen Sie nicht auf, wenn Sie versuchen, jede Android-Version zu unterstützen

Obwohl es natürlich ist, Ihre App so vielen Benutzern wie möglich präsentieren zu wollen, tappen Sie nicht in die Falle, dass die Unterstützung weiterer Android-Versionen immer der beste Ansatz ist.

Der Schlüssel zur Anziehung eines großen Publikums besteht darin, die bestmögliche Benutzererfahrung zu bieten, und wenn Sie darauf abzielen, so viele Android-Versionen wie möglich zu unterstützen, kann dies die allgemeine Benutzererfahrung beeinträchtigen.

Das Hauptproblem ist, dass es schwieriger wird, Ihre App mit den früheren Versionen gut abzuspielen, während Sie weiterhin durch die Veröffentlichungshistorie von Android reisen.

Manchmal kann es einen klaren Punkt geben, an dem Ihre App mit früheren Android-Versionen nicht mehr kompatibel ist. Wenn Ihre App beispielsweise unbedingt den Zugriff auf Bluetooth Low Energy (BLE) erfordert, kann Ihre App nicht auf einer früheren Version als Android 4.3 ausgeführt werden – der Version, bei der BLE-Unterstützung zur Android-Plattform hinzugefügt wurde.

Manchmal ist diese Linie jedoch nicht ganz so eindeutig, und Sie können darüber nachdenken, ob Sie nicht kritische Funktionen ändern oder sogar entfernen sollten, um etwas zu erstellen, das auf einer bestimmten Android-Version ausgeführt werden kann. Kleine Kompromisse können nach und nach die Qualität der Benutzererfahrung beeinträchtigen. Berücksichtigen Sie daher immer die Auswirkungen dieser Änderungen auf Ihre Benutzer.

Darüber hinaus erfordert das Anpassen, Optimieren und Testen Ihrer App für jede unterschiedliche Android-Version Zeit und Mühe. Sie müssen sich also auch fragen, ob sich diese Investition lohnt. Wie viele weitere Benutzer könnten Sie im Grunde genommen gewinnen, indem Sie jede Android-Version unterstützen? Sie können einen Hinweis darauf erhalten, auf wie vielen Android-Geräten jede Version der Android-Plattform ausgeführt wird, indem Sie sich die Statistiken im Dashboard von Google ansehen.

Letztendlich gibt es keine allgemeingültige richtige oder falsche Antwort, daher müssen Sie die Vor- und Nachteile abwägen und entscheiden, was für Ihr spezielles Projekt am sinnvollsten ist.

Sobald Sie sich entschieden haben, welche Android-Versionen Sie unterstützen möchten, fügen Sie diese Informationen zu Ihrer build.gradle-Datei auf Modulebene hinzu. Verwenden Sie dazu minSdkVersion (die niedrigste API, mit der Ihre App kompatibel ist), targetSdkVersion (die höchste API-Ebene, die Sie haben Ihre App getestet hat) und compileSdkVersion (die Version des Android SDK, die Gradle zum Kompilieren Ihrer App verwenden soll).

Um sicherzustellen, dass Ihre App von den neuesten Android-Funktionen profitiert und gleichzeitig mit früheren Versionen kompatibel bleibt, wird empfohlen, Ihren minSdkValue so niedrig wie möglich einzustellen, während Sie targetSdkVersion und compilSdkVersion auf die neueste Version des Android SDK setzen.

2. Entwerfen Sie für mehrere Bildschirme

Wenn Sie an einer Android-App arbeiten, verbringen Sie nicht selten die meiste Zeit damit, diese App auf Ihrem eigenen Android-Smartphone oder -Tablet zu testen. Besonders in den frühen Phasen der App-Entwicklung wird das Erstellen mehrerer virtueller Android-Geräte (AVDs) wahrscheinlich das Letzte sein, woran Sie denken.

Verlieren Sie jedoch nicht das große Ganze aus den Augen! Es ist leicht, sich beim Designen für den einen Bildschirm, der sich physisch vor Ihnen befindet, aufzuhalten, aber es ist wichtig, dass Ihre App auf einer Vielzahl von Android-Geräten gut aussieht und richtig funktioniert.

Das Android-System skaliert Ihre Layouts, Drawables und anderen Ressourcen automatisch, sodass sie in der richtigen Größe für den aktuellen Bildschirm gerendert werden. Für die beste Benutzererfahrung sollten Sie jedoch die Illusion erzeugen, dass Ihre App für das spezifische Gerät des Benutzers entwickelt wurde. Sich allein auf die automatische Skalierung zu verlassen, reicht nicht aus!

Um sicherzustellen, dass Ihre App die beste Benutzererfahrung auf einer Vielzahl von Geräten bietet, müssen Sie alternative Ressourcen bereitstellen, die für verschiedene Geräte optimiert sind, z. B. Drawables, die auf die allgemeinen Dichte-Buckets von Android abzielen, und alternative Layouts, die für das Querformat optimiert sind Modus.

Nachdem Sie Ihre alternativen Ressourcen erstellt haben, müssen Sie alternative Verzeichnisse erstellen, die mit den entsprechenden Konfigurationsqualifizierern gekennzeichnet sind, und dann die Ressourcen in diese Verzeichnisse platzieren – zum Beispiel würde ein Verzeichnis res/layout-land Layouts enthalten, die für Querformat ausgelegt. Das Android-System lädt dann automatisch die Ressource, die der aktuellen Bildschirmkonfiguration zur Laufzeit am besten entspricht.

Während die meisten Konfigurationsqualifizierer relativ einfach sind, ist die Bereitstellung von Ressourcen für unterschiedliche Bildschirmgrößen etwas komplexer, da Sie den genauen dpi-Wert angeben müssen, ab dem das System diese Ressource verwenden soll. Sie müssen dem System also grundsätzlich mitteilen: "Ich möchte dieses Layout verwenden, wenn meine App auf Geräten mit einer verfügbaren Bildschirmbreite von 800 dpi oder mehr angezeigt wird."

Sie erhalten diese Werte, indem Sie Ihre App mit einer Vielzahl verschiedener AVDs testen und alle Bildschirmgrößen notieren, mit denen Ihre Standardressourcen zu kämpfen haben. Zum Beispiel sieht Ihr Standardlayout möglicherweise überladen aus, sobald das Gerät unter a fällt bestimmten dpi-Schwellenwert.

Es gibt drei Qualifizierer für die Bildschirmgröße-Konfiguration, die Sie in Ihren Projekten verwenden können:

  • smallestWidth sw<value>dp. Ermöglicht Ihnen, den minimalen horizontalen Speicherplatz anzugeben, der verfügbar sein muss, damit das System die Ressourcen in diesem Verzeichnis verwenden kann. Wenn Sie beispielsweise über eine Reihe von Layouts verfügen, die 800 dpi oder mehr erfordern, erstellen Sie ein Verzeichnis res/layout-sw800dp. Beachten Sie, dass die smallestWidth eines Geräts ein fester Wert ist, der sich nicht ändert, wenn der Benutzer sein Gerät zwischen Hoch- und Querformat wechselt.

  • Verfügbare Bildschirmbreite w<value>dp. Der minimale horizontale Platz, der verfügbar sein muss, damit das System diese Ressourcen nutzen kann. Der w<value>dp-Wert eines Geräts ändert sich, wenn der Benutzer zwischen Hoch- und Querformat wechselt.

  • Verfügbare Bildschirmhöhe: h<value>dp. Die Mindesthöhe, die verfügbar sein muss, damit das System diese Ressourcen nutzen kann. Der h<value>dp-Wert des Geräts ändert sich je nachdem, ob der Benutzer sein Gerät im Quer- oder Hochformat hält.

Beim Entwerfen für mehrere Bildschirme geht es hauptsächlich darum, alternative Versionen der Ressourcen Ihres Projekts zu erstellen und sie den entsprechenden Verzeichnissen hinzuzufügen – dann spülen und wiederholen. Es gibt jedoch einige zusätzliche Tricks, die Sie beim Erstellen dieser alternativen Ressourcen anwenden können, die wirklich dazu beitragen können, die Illusion zu erwecken, dass Ihre App für das spezifische Gerät des Benutzers entwickelt wurde:

  • Verwenden Sie dichtespezifische Drawables in Kombination mit 9-Patch-Bildern. Wenn das System die Größe eines Bildes an den aktuellen Bildschirm anpassen muss, ändert es standardmäßig die Größe des gesamten Bildes, was zu verschwommenen, pixeligen oder anderweitig seltsam aussehenden Bildern führen kann. Um die bestmöglichen Ergebnisse zu erzielen, sollten Sie die genauen Pixel angeben, die das System replizieren soll, wenn es die Größe Ihres Bildes ändern muss, indem Sie die Drawables Ihres Projekts als 9-Patch-Bilder bereitstellen. Stellen Sie mehrere 9-Patch-Versionen jedes Drawables bereit, wobei jedes 9-Patch auf eine andere Bildschirmdichte abzielt, und das System lädt dann das 9-Patch-Bild, das am besten für die aktuelle Bildschirmdichte geeignet ist, und streckt das "dehnbare" des 9-Patch-Bildes", falls erforderlich. Sie können 9-Patch-Bilder mit einem beliebigen PNG-Editor erstellen oder den Draw 9-Patch-Editor verwenden, der im Android SDK enthalten ist (Sie finden ihn in sdk/tools/Draw9patch.bat).

  • Erstellen Sie mehrere dimension.xml-Dateien. Es wird empfohlen, die Werte Ihres Layouts in einer separaten Datei dimens.xml zu definieren, anstatt sie fest in Ihr Projekt zu codieren. Sie können jedoch noch einen Schritt weiter gehen und mehrere dimens.xml-Dateien erstellen, die auf unterschiedliche Bildschirmgrößen und -dichten abzielen. Sie können beispielsweise eine Datei values-ldpi/dimens.xml erstellen, in der Sie die Werte definieren, die Ihre App verwenden soll, wenn sie auf einem Gerät installiert wird, das in die Kategorie "niedrige" Dichte fällt. Das System lädt dann die entsprechenden Abmessungen für das aktuelle Gerät und wendet sie auf Ihr Layout an.

  • Erwägen Sie die Verwendung von Fragmenten. Fragmente bieten Ihnen die Möglichkeit, eine einzelne Activity in separate Komponenten aufzuteilen, die Sie dann je nach aktueller Bildschirmkonfiguration auf unterschiedliche Weise anzeigen können. Sie können beispielsweise mehrere Fragmente nebeneinander in einem Layout mit mehreren Fenstern anzeigen, wenn Ihre App auf einem Gerät mit einem größeren Bildschirm installiert ist, und als separate Aktivitäten, wenn der Platz begrenzt ist. Die einfachste Möglichkeit, Ihrem Layout ein Fragment hinzuzufügen, besteht darin, ein <fragment>-Element in Ihre Layout-Ressourcendatei einzufügen. Alternativ können Sie einem Layout über Ihren Anwendungscode Fragmente hinzufügen. Diese Methode ist möglicherweise komplizierter, bietet Ihnen jedoch die zusätzliche Flexibilität, Fragmente zur Laufzeit hinzuzufügen, zu entfernen oder zu ersetzen.

3. Erwägen Sie die Unterstützung verschiedener Sprachen

Android ist ein globales Betriebssystem. Wenn Ihre App also dieser globalen Zielgruppe die beste Benutzererfahrung bieten soll, sollten Sie in Erwägung ziehen, Ihre App für verschiedene Sprachen und möglicherweise verschiedene Regionen zu lokalisieren.

Normalerweise besteht der größte Teil der Lokalisierung einer App darin, die Datei strings.xml Ihres Projekts in die verschiedenen Sprachen zu übersetzen, die Sie unterstützen möchten. Sofern Sie Ihre Zielsprachen nicht fließend sprechen, müssen Sie einen Übersetzer in Anspruch nehmen. Wenn Sie niemanden im Sinn haben, können die Google Play App Translation Services der Developer Console Sie auf potenzielle Übersetzer hinweisen.

Youll find a Purchase Translations option in the Google Play Developer ConsoleYoull find a Purchase Translations option in the Google Play Developer ConsoleYoull find a Purchase Translations option in the Google Play Developer Console

Nachdem Sie sich für einen Übersetzer entschieden haben, sollten Sie sich Ihre strings.xml-Datei kritisch ansehen, bevor Sie sie zur Übersetzung senden. Suchen Sie nach Rechtschreibfehlern und Tippfehlern und stellen Sie sicher, dass Ihre strings.xml so formatiert ist, dass sie leicht lesbar ist. Bedenken Sie dabei, dass Ihr Übersetzer möglicherweise selbst kein Android-Entwickler ist.

Sie sollten auch so viel Kontext wie möglich bereitstellen, also stellen Sie sicher, dass Sie zu jeder Zeichenfolge einen Kommentar hinzufügen, der erklärt, wozu diese Zeichenfolge dient, wo und wann sie in Ihrer App angezeigt wird und welche Einschränkungen der Übersetzer beachten muss. Wenn eine Zeichenfolge beispielsweise weniger als 10 Zeichen lang sein muss, damit sie in den zugewiesenen Platz in Ihrem Layout passt, muss sich der Übersetzer dessen bewusst sein!

Nachdem der Übersetzer Ihre übersetzte(n) strings.xml-Datei(en) zurückgegeben hat, müssen Sie für jede alternative Datei ein Verzeichnis erstellen, was bedeutet, dass Sie herausfinden müssen, welche Konfigurationsqualifizierer verwendet werden sollen.

Ein Qualifizierer für die Gebietsschemakonfiguration besteht aus einem ISO-Code, der im Wesentlichen ein Sprachcode ist, und einem optionalen Länder- oder Regionalcode, dem ein kleines r vorangestellt ist. Wenn Sie beispielsweise französischen (fr) Text für Personen mit Wohnsitz in Kanada bereitstellen möchten (can), erstellen Sie ein Verzeichnis res/values-fr-rcan.

Wenn Sie lokalisierten Text bereitstellen, denken Sie daran, dass sich einige Zeichenfolgen während der Übersetzung erheblich vergrößern oder verkleinern können. Sie müssen also testen, ob Ihre Layouts alle Versionen der Zeichenfolgen Ihres Projekts aufnehmen können.

Der einfachste Weg, Ihre lokalisierten Ressourcen zu testen, besteht darin, Ihre App auf einem AVD zu installieren und dann die verschiedenen Speicherorte und Spracheinstellungen zu emulieren. Zu diesem Zeitpunkt lädt das System die lokalisierten Versionen Ihrer Ressourcen und zeigt sie in Ihrer App an.

Sie können die Gebietsschemaeinstellungen in einem laufenden AVD ändern, indem Sie die folgenden Android Debug Bridge (adb)-Befehle ausführen:

Gefolgt von:

Beachten Sie, dass Sie den fr-CAN durch einen beliebigen Konfigurationsqualifizierer ersetzen müssen, gegen den Sie testen möchten.

Wenn Sie Ihre App unter Berücksichtigung von Best Practices entwickelt haben, sollten Ihre Layouts flexibel genug sein, um die meisten Ihrer lokalisierten Zeichenfolgen anzuzeigen. Wenn die Länge Ihrer Zeichenfolgen jedoch stark variiert, müssen Sie möglicherweise alternative Layouts bereitstellen, die für unterschiedliche Gebietsschemas optimiert sind.

Während die Datei strings.xml Ihres Projekts in der Regel die Hauptressource ist, die Sie lokalisieren müssen, sollten Sie auch überlegen, ob es andere Ressourcen gibt, die Sie eventuell übersetzen müssen, wie z. B. Drawables, die Text enthalten, Video- oder Audiodateien, die Dialoge enthalten, oder andere Ressourcen, die für das angestrebte Gebietsschema unpassend sein könnten..

Sobald Sie sicher sind, dass Sie alle erforderlichen lokalisierten Ressourcen bereitgestellt und Ihre eigene Testrunde durchgeführt haben, sollten Sie in Betracht ziehen, einen Betatest mit Muttersprachlern in jedem Ihrer Zielländer zu vereinbaren. Muttersprachler erkennen oft Fehler, die selbst ein Übersetzer übersieht, und können Ihnen möglicherweise Tipps geben, wie Sie Ihre App für diesen speziellen Teil Ihres Publikums attraktiver machen können. Sie können solche gezielten Betatests über die Google Play Developer Console veranlassen.

Wenn Sie endlich bereit sind, Ihre App zu starten, sollten Sie sich die Zeit nehmen, lokalisierte Versionen der Google Play-Seite Ihrer App zu erstellen, da dies Ihre App für internationale Nutzer, die im Google Play Store surfen, sofort attraktiver macht. Sie sollten auch versuchen, Screenshots bereitzustellen, die den lokalisierten Text in Ihrer App deutlich zeigen, damit sich die Benutzer nicht fragen müssen, ob Sie gerade die Google Play-Seite Ihrer App und nicht den tatsächlichen Text in Ihrer App übersetzt haben.

Und die harte Arbeit endet nicht, wenn Sie Ihre App gestartet haben! Sobald Sie Ihr internationales Publikum angezogen haben, müssen Sie an diesem festhalten, indem Sie fortlaufenden Support in mehreren Sprachen bieten – selbst wenn dies bedeutet, auf maschinelle Übersetzer wie Google Translate zurückzugreifen. Zumindest sollten Sie Ihre Google Play-Rezensionen im Auge behalten, um zu sehen, ob Nutzer in bestimmten Gebietsschemas ähnliche Probleme melden, was auf ein Problem mit einer oder mehreren lokalisierten Ressourcen Ihrer App hindeuten kann.

4. Vergessen Sie nicht die Barrierefreiheit!

Als App-Entwickler möchten Sie sicherstellen, dass jeder Ihre App gerne nutzen kann. Daher ist es wichtig zu berücksichtigen, wie zugänglich Ihre App für Personen ist, die sie möglicherweise ohne Ton, Farbe oder andere visuelle Elemente erleben, oder für alle, die mit ihr interagieren ihres Android-Geräts über ein Eingabehilfe-Tool wie einen Screenreader.

Android wurde mit Blick auf die Barrierefreiheit entwickelt, daher verfügt es über eine Reihe integrierter Barrierefreiheitsfunktionen, die Sie verwenden können, ohne grundlegende Änderungen am Code Ihrer Anwendung vornehmen zu müssen.

Sehen wir uns einige kleinere Optimierungen an, die Sie an Ihrem Projekt vornehmen können, die einen großen Einfluss auf die Zugänglichkeit Ihrer App haben:

Erwägen Sie die Bereitstellung zusätzlicher Inhaltsbeschreibungen

Bedienungshilfen wie TalkBack lesen Bildschirmtext laut vor und sind damit ein wichtiges Werkzeug, um Benutzern mit Sehproblemen bei der Interaktion mit ihren Android-Geräten zu helfen.

Beim Entwerfen Ihrer Android-App sollten Sie berücksichtigen, wie einfach es für Benutzer sein wird, allein mit dem Bildschirmtext in Ihrer App zu navigieren. Wenn Sie zusätzlichen Kontext bereitstellen müssen, können Sie einer beliebigen UI-Komponente Ihrer App eine Inhaltsbeschreibung hinzufügen, die dann von Diensten wie TalkBack vorgelesen wird. Um eine Inhaltsbeschreibung hinzuzufügen, öffnen Sie die Layoutressourcendatei Ihres Projekts und fügen Sie der betreffenden UI-Komponente ein android:contentDescription-Attribut hinzu, gefolgt von der Beschreibung, die Sie verwenden möchten.

Fokusnavigation unterstützen

Benutzer mit eingeschränktem Sehvermögen oder eingeschränkter manueller Geschicklichkeit finden es möglicherweise einfacher, mit ihrem Gerät mit einem Richtungscontroller wie einem Trackpad, einem D-Pad oder einer Tastatur oder einer Software, die einen Richtungscontroller emuliert, zu interagieren. Um sicherzustellen, dass Ihre App diese Art der Fokusnavigation unterstützt, müssen Sie jeder Navigationskomponente Ihrer App das Attribut android:focusable="true" hinzufügen.

Wenn Benutzer mithilfe von Richtungssteuerelementen in Ihrer App navigieren, wird der Fokus in einer Reihenfolge von einem UI-Element an ein anderes weitergegeben, die automatisch mithilfe eines Algorithmus bestimmt wird. Sie können diese Standardeinstellungen jedoch überschreiben und angeben, welche UI-Komponente den Fokus erhalten soll, wenn sich der Benutzer in eine bestimmte Richtung bewegt, indem Sie die folgenden XML-Attribute zu einer Ihrer UI-Komponenten hinzufügen: android:nextFocusUp, android:nextFocusDown, android:nextFocusLeft und android:nextFocusRight. Beispielsweise:

Machen Sie Ihren Text verwertbar

Benutzer mit Sehbehinderungen können die Schriftgröße erhöhen, die auf ihrem Gerät angezeigt wird. Um sicherzustellen, dass sich alle Schriftänderungen in Ihrer App widerspiegeln, definieren Sie Ihren Text in skalierten Pixeln – und vergessen Sie nicht zu testen, welche Auswirkungen die verschiedenen Schriftgrößen von Android auf die Benutzeroberfläche Ihrer App haben, falls Sie einige Anpassungen an Ihrer App vornehmen müssen Layout.

Empfohlene Touch-Target-Größen verwenden

Um Personen mit manuellen Geschicklichkeitsproblemen bei der Navigation in Ihrer App zu helfen, wird empfohlen, alle Touch-Ziele auf 48 x 48 dpi oder höher einzustellen und sicherzustellen, dass der Abstand zwischen diesen Zielen mindestens 8 dpi beträgt.

Ziehen Sie in Erwägung, die Zeitüberschreitungssteuerungen zu deaktivieren

Einige UI-Komponenten werden möglicherweise nach einer bestimmten Zeit automatisch ausgeblendet – zum Beispiel verschwinden die Steuerelemente für die Videowiedergabe oft, sobald ein Video einige Momente lang abgespielt wurde.

Das Problem besteht darin, dass Bedienungshilfen wie Talkback Steuerelemente erst dann lesen, wenn sich der Benutzer darauf konzentriert hat. Wenn also ein Steuerelement mit Zeitüberschreitung verschwindet, bevor der Benutzer sich darauf konzentrieren kann, wird ihm nicht bewusst, dass diese Kontrollen gibt es sogar. Aus diesem Grund sollten Sie erwägen, Steuerelemente mit Zeitüberschreitung auf permanente Steuerelemente zu aktualisieren, wenn Barrierefreiheitsdienste aktiviert sind.

5. Testen Sie die Leistung Ihrer App

Nur weil Ihre App während des Tests nicht abstürzt oder Fehler auslöst, bedeutet dies nicht automatisch, dass sie gut funktioniert, da einige Leistungsprobleme heimtückisch und bei regelmäßigen Tests schwer zu erkennen sind. Niemand verwendet gerne eine App, deren Ladezeit ewig dauert, bei jedem Versuch, mit ihr zu interagieren, verzögert wird und den verfügbaren Speicher verschlingt. Daher sollten Sie Ihre App immer einer Reihe von leistungsbasierten Tests unterziehen, bevor Sie sie in die Wildnis bringen .

Das Android SDK enthält eine Vielzahl von Tools, mit denen Sie die Leistung Ihrer App gezielt testen können. In diesem Abschnitt werden wir uns ein paar derjenigen ansehen, die Sie auf jeden Fall verwenden möchten; es gibt jedoch noch viele weitere, die eine Untersuchung wert sind (weitere Informationen finden Sie in den offiziellen Android-Dokumenten).

Beachten Sie, dass alle diese Tools nur mit einer laufenden App kommunizieren können. Sie müssen also sicherstellen, dass die App, die Sie testen möchten, entweder auf einem AVD oder einem physischen Gerät installiert ist, das mit Ihrem Entwicklungscomputer verbunden ist.

Bevor wir beginnen, ist es erwähnenswert, dass es empfohlen wird, Ihren Code zu timen, bevor Sie versuchen, dieses Problem zu beheben, wenn Sie ein Problem mit der Leistung Ihrer App feststellen. Sie können Ihren Code dann erneut timen, nachdem Sie glauben, dass Sie das Problem behoben haben, und Sie können genau sehen, wie sich Ihre Änderungen auf die Leistung Ihrer App ausgewirkt haben.

Sie können Ihren Code mit TraceView zeitlich festlegen, auf den Sie zugreifen, indem Sie die Registerkarte DDMS des Android-Gerätemonitors auswählen, dann das Gerät und den Prozess auswählen, den Sie profilieren möchten, und auf das Symbol Methodenprofilierung starten klicken (wo sich der Cursor im Folgenden befindet Bildschirmfoto).

In the Android Device Monitor select the DDMS tab followed by Start Method ProfilingIn the Android Device Monitor select the DDMS tab followed by Start Method ProfilingIn the Android Device Monitor select the DDMS tab followed by Start Method Profiling

An dieser Stelle können Sie entweder Trace-basiertes Profiling (verfolgt den Ein- und Ausgang jeder Methode) oder Sample-based Profiling (sammelt die Aufrufstapel in einer von Ihnen festgelegten Häufigkeit) auswählen. Nachdem Sie Ihre Auswahl getroffen haben, verbringen Sie einige Zeit damit, mit Ihrer App zu interagieren. Wenn Sie bereit sind, die Ergebnisse anzuzeigen, können Sie die Trace-Datei in den Viewer laden, indem Sie auf das Symbol Methodenprofilierung stoppen klicken. Die Ablaufverfolgungsdatei zeigt die Ausführung jedes Threads als separate Zeile an, sodass Sie genau sehen können, wie lange die einzelnen Teile Ihres Projekts ausgeführt werden.

Überziehung erkennen

Wenn das System die Benutzeroberfläche Ihrer App zeichnet, beginnt es mit dem Container der höchsten Ebene und arbeitet sich dann durch Ihre Ansichtshierarchie, wobei möglicherweise Ansichten in einem als Überzeichnen bezeichneten Prozess übereinander gezeichnet werden. Auch wenn ein gewisses Maß an Überziehung unvermeidlich ist, können Sie die Zeit zum Rendern Ihrer App verkürzen, indem Sie alle Fälle von übermäßiger oder unnötiger Überziehung erkennen und entfernen.

Wenn Sie ein Gerät haben, auf dem Android 4.2 oder höher ausgeführt wird, können Sie den Umfang der Überzeichnung in jeder auf diesem Gerät installierten App überprüfen, indem Sie Einstellungen > Entwickleroptionen > GPU-Überzeichnung debuggen > Überzeichnungsbereiche auswählen auswählen. Das System fügt dann jedem Bereich des Bildschirms eine farbige Überlagerung hinzu, die angibt, wie oft jedes Pixel gezeichnet wurde:

  • Keine Farbe. Dieses Pixel wurde einmal gemalt.

  • Blau. Eine Überziehung von 1x. Diese Pixel wurden zweimal gemalt.

  • Grün. Eine Überziehung von 2x.

  • Hellrot. Eine Überziehung von 3x.

  • Dunkelrot. Eine Überziehung von 4x oder mehr.

Die meisten Apps enthalten ein gewisses Maß an Überzeichnung, aber wenn Sie große Überzeichnungsbereiche in Ihrer App entdecken, sollten Sie prüfen, ob es eine Möglichkeit gibt, die Anzahl der Neuzeichnungen jedes Pixels zu reduzieren, und eine der effektivsten Methoden besteht darin, unnötige Ansichten zu entfernen.

Der Hierarchie-Viewer des Android Device Monitor bietet eine allgemeine Übersicht über die gesamte Ansichtshierarchie Ihrer App, die Ihnen helfen kann, Ansichten zu identifizieren, die nichts zum endgültig gerenderten Bild beitragen, das der Benutzer auf dem Bildschirm sieht.

Um den Hierarchie-Viewer zu starten, klicken Sie auf die Schaltfläche Hierarchieansicht des Android-Gerätemonitors und wählen Sie dann das Gerät und die Aktivität aus, die Sie untersuchen möchten, gefolgt vom blauen Symbol Ansichtshierarchie in die Baumansicht laden.

In the Android Device Monitor select the Hierarchy View button followed by Load the view hierarchy into the tree view In the Android Device Monitor select the Hierarchy View button followed by Load the view hierarchy into the tree view In the Android Device Monitor select the Hierarchy View button followed by Load the view hierarchy into the tree view

Sie können die Ausgabe des Hierarchie-Viewers auch als Photoshop-Dokument exportieren. Dies ist eine besonders effektive Methode zum Identifizieren von Ansichten, die nichts zur endgültigen Benutzeroberfläche beitragen, da jede Ansicht als separate Photoshop-Ebene angezeigt wird, d. h. Sie können jede Ebene ein- und ausblenden und genau sehen, welche Auswirkungen dies auf das endgültige Ergebnis hat Bild, das der Benutzer auf dem Bildschirm sieht.

Um ein PSD-Dokument zu erstellen, klicken Sie einfach auf das Symbol Fensterebenen als Photoshop-Dokument erfassen.

Speicherlecks erkennen

Garbage Collection (GC) ist ein normales Systemverhalten, das wichtig ist, um sicherzustellen, dass Ihre App und das Gerät insgesamt weiterhin reibungslos funktionieren.

Wenn Ihre App den Speicher jedoch nicht richtig verwaltet – möglicherweise Speicherverlust oder die Zuweisung einer großen Anzahl von Objekten in kurzer Zeit – kann dies häufigere GC-Ereignisse auslösen, die auch länger ausgeführt werden. Sie können sich im Hauptfenster von Android Studio genau ansehen, welche GC-Ereignisse in Ihrer App auftreten. Öffnen Sie die Registerkarte Android Monitor im unteren Bereich des Fensters, gefolgt von der Registerkarte Monitore. Das Memory Monitor-Tool beginnt dann automatisch mit der Aufzeichnung der Speichernutzung Ihrer App.

Select the Android Monitor tab towards the bottom of the main Android Studio window followed by the Monitors tabSelect the Android Monitor tab towards the bottom of the main Android Studio window followed by the Monitors tabSelect the Android Monitor tab towards the bottom of the main Android Studio window followed by the Monitors tab

Wenn Sie weiterhin mit Ihrer App interagieren, sehen Sie schließlich einen plötzlichen Rückgang des zugewiesenen Speichers, der darauf hinweist, dass ein GC-Ereignis aufgetreten ist. Wiederholen Sie diesen Vorgang, stellen Sie sicher, dass Sie verschiedene Bereiche Ihrer App erkunden und sehen Sie, welche Auswirkungen dies auf die GC-Ereignisse hat. Wenn Sie ein seltsames GC-Verhalten feststellen, sollten Sie dies genauer untersuchen, da dies auf ein Problem mit der Speichernutzung durch Ihre App hinweisen kann.

Es gibt einige Tools, mit denen Sie mehr Informationen über die Speichernutzung Ihrer App sammeln können. Erstens können Sie die Registerkarte Heap des Android Device Monitor verwenden, um zu sehen, wie viel Heap-Speicher jeder Prozess verwendet, wodurch alle Prozesse angezeigt werden, die verfügbaren Speicher verbrauchen.

Um das Heap-Tool zu verwenden, wählen Sie die Registerkarte DDMS von Android Device Monitor, gefolgt von dem Prozess, den Sie untersuchen möchten, und klicken Sie dann auf die Schaltfläche Heap aktualisieren. Die Registerkarte Heap zeigt keine Daten an, bis ein GC-Ereignis aufgetreten ist. Wenn Sie jedoch ungeduldig sind, können Sie jederzeit ein GC-Ereignis auslösen, indem Sie auf die Schaltfläche GC verursachen klicken.

Open the Heap tool by selecting DDMS HeapOpen the Heap tool by selecting DDMS HeapOpen the Heap tool by selecting DDMS Heap

Ein weiteres Tool, mit dem Sie Informationen über die Speichernutzung Ihrer App sammeln können, ist Allocation Tracker, mit dem Sie genau sehen können, welche Objekte Ihre App dem Speicher zuweist. Um Allocation Tracker zu verwenden, wählen Sie die Registerkarte DDMS von Android Device Monitor, gefolgt von Allocation Tracker und dem Prozess, den Sie untersuchen möchten.

Klicken Sie auf die Schaltfläche Tracking starten und verbringen Sie einige Zeit mit der Interaktion mit Ihrer App, insbesondere mit allen Teilen, von denen Sie vermuten, dass sie die Speicherverwaltungsprobleme Ihrer App verursachen. Um alle Daten anzuzeigen, die Allocation Tracker während des Stichprobenzeitraums gesammelt hat, wählen Sie die Schaltfläche Start Tracking und dann die Schaltfläche Get Allocations.

6. Verwenden Sie Analysetools

Das Verständnis Ihres Publikums ist ein entscheidender Bestandteil bei der Erstellung einer erfolgreichen App.

Der Zugriff auf Daten darüber, wer Ihre Zielgruppe ist und wie sie Ihre App nutzt, bedeutet, dass Sie fundiertere Entscheidungen darüber treffen können, wie Sie auf dem Erfolg Ihrer App aufbauen und die Bereiche verbessern können, in denen Ihre App nicht ganz so gut abschneidet.

Das Sammeln dieser Art von Benutzerdaten ist besonders nützlich, um Trends in verschiedenen Bereichen Ihres Publikums zu erkennen. Sie könnten zum Beispiel entscheiden, dass ein bestimmtes Segment Ihrer Zielgruppe besonders wertvoll ist – vielleicht erzielen sie den größten Prozentsatz der In-App-Käufe oder investieren überdurchschnittlich viel Zeit in Ihre App. Ausgestattet mit diesen Informationen können Sie zusätzliche Schritte unternehmen, um diese Nutzer zu unterstützen und sicherzustellen, dass Ihre wertvollsten Nutzer mit Ihrer App in Kontakt bleiben.

Am anderen Ende der Skala entdecken Sie möglicherweise einen Bereich, in dem Ihre App Probleme hat. Beispielsweise haben Benutzer, die eine bestimmte Android-Version verwenden, möglicherweise erheblich niedrigere Interaktionsraten oder deinstallieren Ihre App eher. In diesem Szenario möchten Sie Ihre App möglicherweise auf dieser bestimmten Android-Version testen, um festzustellen, ob ein Fehler oder ein anderer Fehler vorliegt, der die Benutzererfahrung für diesen Abschnitt Ihrer Benutzerbasis beeinträchtigen könnte.

Grundsätzlich gilt: Je mehr Daten Sie über Ihr Publikum und dessen Verhalten sammeln, desto größer sind Ihre Chancen, Ihre bestehenden Nutzer zufrieden zu stellen, neue Nutzer zu gewinnen und generell allen, die mit Ihrer App in Kontakt kommen, ein rundum tolles Erlebnis zu bieten.

In diesem Abschnitt werde ich mir zwei Dienste ansehen, die Ihnen eine Fülle von Informationen zur Verfügung stellen: Firebase Analytics und die Google Play Developer Console.

Feuerbasis

Sie können Firebase Analytics verwenden, um Daten über Ihre Nutzer wie Alter, Geschlecht und Standort sowie Informationen zu über 500 In-App-Ereignissen zu sammeln. Sie können bei Bedarf sogar Ihre eigenen benutzerdefinierten Ereignisse definieren.

Um Ihrem Projekt Firebase Analytics hinzuzufügen, benötigen Sie die Google Play-Dienste 10.0.1 oder höher und das Google Repository Version 26 oder höher. Öffnen Sie also den SDK-Manager und stellen Sie sicher, dass diese Komponenten auf dem neuesten Stand sind. Sie müssen außerdem Android Studio 1.5 oder höher ausführen und für ein kostenloses Firebase-Konto registriert sein.

Wenn Sie Android 2.2 oder höher verwenden, können Sie Ihre App mithilfe des Firebase Assistant mit Firebase Analytics verbinden. Öffnen Sie Android Studio, starten Sie das betreffende Projekt und:

  • Wählen Sie in der Android Studio-Symbolleiste Extras > Firebase aus.

Launch the Firebase Assistant by selecting Tools from the Android Studio toolbar followed by FirebaseLaunch the Firebase Assistant by selecting Tools from the Android Studio toolbar followed by FirebaseLaunch the Firebase Assistant by selecting Tools from the Android Studio toolbar followed by Firebase

  • Klicken Sie auf den Abschnitt Analytics, um ihn zu erweitern, und wählen Sie dann den Link Analytics-Ereignis protokollieren aus.

  • Klicken Sie auf die Schaltfläche Mit Firebase verbinden.

  • Wählen Sie im angezeigten Dialogfeld die Option aus, ein neues Firebase-Projekt zu erstellen.

  • Klicken Sie auf die Schaltfläche Mit Firebase verbinden.

  • Nach einigen Augenblicken sollten Sie die Meldung Verbunden sehen.

  • Klicken Sie auf die Schaltfläche Analytics zu Ihrer App hinzufügen.

  • Klicken Sie im folgenden Dialog auf Änderungen übernehmen.

Und das ist es! Sie können jetzt alle Ihre Firebase Analytics-Daten anzeigen, indem Sie sich bei der Firebase Console anmelden, das zu untersuchende Projekt auswählen und dann Analytics auswählen. Diese Daten werden im Laufe des Tages regelmäßig aktualisiert.

Die Entwicklerkonsole

Darüber hinaus erhalten Sie über die Developer Console wertvolle Einblicke in die Leistung und das Nutzerverhalten Ihrer App.

Um diese Daten anzuzeigen, melden Sie sich bei Ihrem Developer Console-Konto an, wählen Sie die App aus, die Sie untersuchen möchten, und wählen Sie dann im linken Menü Dashboard aus.

Die Developer Console enthält viele nützliche Informationen, es lohnt sich also, sich die Zeit zu nehmen, die verschiedenen Abschnitte im Detail zu erkunden. Es gibt jedoch einige Bereiche, die von besonderem Interesse sein könnten:

  • Leistung bei der Benutzerakquise. Dieser Abschnitt enthält eine Aufschlüsselung darüber, wie Nutzer den Google Play-Eintrag Ihrer App finden, beispielsweise den Prozentsatz der Nutzer, die über einen mit UTM-Tags versehenen Link oder eine AdWords-Anzeige auf Ihre Seite gelangt sind, oder die Anzahl der Nutzer, die Ihre App einfach beim Surfen gefunden haben den Google Play-Store.

  • Finanzen. Wenn Sie eine Monetarisierungsstrategie implementiert haben, z. B. In-App-Produkte oder eine Abonnementoption, können Sie die finanzielle Leistung Ihrer App mithilfe der Developer Console überprüfen. Der Abschnitt Finanzen enthält Informationen wie den durchschnittlichen Betrag, den jeder zahlende Nutzer in Ihre App investiert, wie viel Umsatz mit jedem Produkt erzielt wird, das Sie über Ihre App anbieten, und wie viel jeder Abschnitt Ihrer Nutzerbasis ausgibt, basierend auf Faktoren wie B. ihren geografischen Standort, ihr Alter und die von ihnen verwendete Android-Version.

  • Abstürze und ANRs. Dieser Abschnitt enthält alle von Nutzern übermittelten Daten zu Anwendungsabstürzen und Fehlern, die nicht reagieren (ANR). So haben Sie die Möglichkeit, Probleme zu identifizieren und zu beheben, die möglicherweise in Ihrer App auftreten, bevor Nutzer negative Bewertungen bei Google Play hinterlassen. Beachten Sie, dass Abstürze, die von Ihren Benutzern nicht gemeldet wurden, nicht in der Developer Console angezeigt werden.

Sie können auch erwägen, die Google Play Developer Console App herunterzuladen, mit der Sie all diese Informationen unterwegs abrufen können.

Abschluss

In diesem Artikel haben wir uns sechs Dinge angeschaut, die Sie bei der Entwicklung einer Android-App tun und nicht tun sollten. Was sind Ihre goldenen Regeln für die Gestaltung einer großartigen Benutzererfahrung? Hinterlassen Sie unten einen Kommentar und lassen Sie es uns wissen.

Schauen Sie sich in der Zwischenzeit einige unserer anderen Kurse und Tutorials zur Android-Programmierung an!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.