Um neue Nutzer zu erreichen, müssen Sie eine wachsende Vielfalt an Android-Plattformversionen und Gerätespezifikationen unterstützen. Um die Nutzerfreundlichkeit zu verbessern, sollten Sie Ihr Spiel für gängige RAM-Konfigurationen sowie Displaygrößen und ‑auflösungen optimieren.
Verschiedene Bildschirmgrößen unterstützen
Wenn Ihre App Bildschirme mit verschiedenen Größen und Auflösungen unterstützt, kann sie für Milliarden von Nutzern nutzerfreundlicher sein. In diesem Abschnitt werden einige Möglichkeiten beschrieben, wie Sie das tun können.
Dichteunabhängige Pixel (dp) verwenden
- Das Definieren von Layoutabmessungen mit Pixeln funktioniert nicht gut, da verschiedene Bildschirme unterschiedliche Pixeldichten haben. Dieselbe Anzahl von Pixeln kann also auf verschiedenen Geräten unterschiedlichen physischen Größen entsprechen.
- Um dieses Problem zu umgehen, unterstützt Android dichteunabhängige Pixel (dp), die der physischen Größe eines Pixels bei 160 Punkte pro Zoll (mdpi-Dichte) entsprechen.
- Wenn Sie Layouts mit „dp“ definieren, ist die physische Größe der Benutzeroberfläche unabhängig vom Gerät einheitlich. Im Android-Leitfaden Supporting Multiple Screens (Unterstützung mehrerer Displays) finden Sie Best Practices für die Verwendung von dichteunabhängigen Pixeln.
Text und Grafiken bei ldpi- und mdpi-Bildschirmdichten testen
- Testen Sie, ob Ihr Text und Ihre Grafiken auf Bildschirmen mit niedriger und mittlerer Dichte (ldpi und mdpi) gut dargestellt werden, da dies häufige Dichten sind, insbesondere bei kostengünstigeren Geräten. Achten Sie auf Text, der auf Bildschirmen mit geringerer Dichte unleserlich sein kann, da feine Details nicht sichtbar sind.
- Geräte mit Displays mit geringerer Pixeldichte haben in der Regel auch eine geringere Hardwareausstattung. Damit Ihre App auf diesen Geräten gut funktioniert, sollten Sie die Last durch intensive Grafikverarbeitung wie Animationen und Übergänge reduzieren oder ganz vermeiden.
- Weitere Informationen zur Unterstützung verschiedener Dichten finden Sie im Android-Training Supporting Different Densities.
Layouts auf kleinen und mittelgroßen Bildschirmen testen
- Prüfen Sie, ob Ihre Layouts auf kleineren Bildschirmen skaliert werden. Bei kleineren Bildschirmen sollten Sie sehr sorgfältig auswählen, welche UI-Elemente sichtbar sein sollen, da nur wenig Platz für sie zur Verfügung steht.
- In den Material Design-Richtlinien werden Messwerte und Keylines beschrieben, damit Ihre Layouts an verschiedene Bildschirmdichten angepasst werden können.
- Weitere Informationen zur Unterstützung verschiedener Bildschirmgrößen finden Sie im Android-Training Verschiedene Bildschirmgrößen unterstützen.
Abwärtskompatibilität
Nicht alle Ihre Nutzer verwenden Geräte mit der neuesten Version der Android-Plattform. Hier sind einige Möglichkeiten, die Abwärtskompatibilität zu verbessern, damit Ihre App für möglichst viele Nutzer verfügbar ist.
Legen Sie targetSdkVersion und minSdkVersion entsprechend fest.
-
Apps sollten für die neueste Android-Version entwickelt und auf diese ausgerichtet werden, um das aktuelle Verhalten auf einer Vielzahl von Geräten zu bieten. Gleichzeitig wird die Abwärtskompatibilität mit älteren Versionen gewährleistet.
Hier sind die Best Practices für das richtige Targeting von API-Levels:
-
targetSdkVersionsollte die aktuelle Android-Version sein. Wenn Sie die aktuelle Version als Ziel festlegen, übernimmt Ihre App neuere Laufzeitverhalten, wenn sie auf neueren Android-Versionen ausgeführt wird. Testen Sie Ihre App unbedingt auf neueren Android-Versionen, wenn SietargetSdkVersionaktualisieren, da dies das Verhalten der App beeinträchtigen kann. -
minSdkVersionLegt die mindestens unterstützte Android-Version fest. Wenn SieminSdkVersionfestlegen, melden die Android-Build-Tools auch eine falsche Verwendung neuer APIs, die möglicherweise in älteren Versionen der Plattform nicht verfügbar sind. So sind Sie davor geschützt, versehentlich die Abwärtskompatibilität zu beeinträchtigen.
-
- Sehen Sie sich die Android-Dashboards, die Google Play Console für Ihre App und Branchenstudien in Ihren Zielmärkten an, um anhand Ihrer Zielnutzer zu ermitteln, auf welche Android-Versionen Sie abzielen sollten.
Android-Supportbibliotheken verwenden
-
Sorgen Sie dafür, dass Ihre App auf allen Betriebssystemversionen einheitlich funktioniert, indem Sie die Android Support Library verwenden.
Diese Bibliothek bietet abwärtskompatible Versionen von Android-Framework-APIs sowie Funktionen, die nur über die Bibliotheks-APIs verfügbar sind, z. B.
AppCompatActivityund die Material Design Support Library. - Einige der Highlights:
- v4- und v7-Supportbibliothek: Viele Framework-APIs für ältere Android-Versionen wie
ViewPager,ActionBar,RecyclerViewundPalette. - Material Design-Supportbibliothek: APIs zum Hinzufügen von Material Design-Komponenten und ‑Mustern zu Ihren Apps.
- Multidex-Supportbibliothek: Bietet Unterstützung für große Apps mit mehr als 65.000 Methoden. Das kann passieren, wenn Ihre App viele Bibliotheken verwendet.
- v4- und v7-Supportbibliothek: Viele Framework-APIs für ältere Android-Versionen wie
- Weitere Informationen zu den verfügbaren Support-Bibliotheken finden Sie im Abschnitt Support Libraries Features auf der Android-Entwicklerwebsite.
Google Play-Dienste verwenden
- Mit Google Play-Diensten können Sie die besten Google-APIs unabhängig von der Android-Plattformversion nutzen. Erwägen Sie, Funktionen der Google Play-Dienste zu verwenden, um auf Android-Geräten eine möglichst optimierte Google-Umgebung zu bieten.
- Die Google Play-Dienste enthalten auch nützliche APIs wie
GcmNetworkManager, die einen Großteil derJobSchedulerAPI von Android 5.0 für ältere Android-Versionen bereitstellt. - Updates für die Google Play-Dienste werden automatisch über den Google Play Store verteilt und neue Versionen der Clientbibliothek werden über den Android SDK Manager bereitgestellt.
Speicher effizient nutzen
Der Arbeitsspeicher ist ein oft unterschätzter Faktor für die User Experience. Durch eine gute Speicherverwaltung kann Ihre App stabiler und leistungsfähiger werden. In einigen Fällen ist sie möglicherweise die einzige Möglichkeit, Ihre App überhaupt nutzbar zu machen. Hier sind einige Möglichkeiten, wie Sie dazu beitragen können, dass Ihre App Arbeitsspeicher effizient nutzt.
Speicherbedarf auf kostengünstigen Geräten verringern
- Passen Sie den Speicherbedarf dynamisch an, um die Kompatibilität auf Geräten mit unterschiedlichen RAM-Konfigurationen zu gewährleisten.
- Methoden wie
isLowRamDevice()undgetMemoryClass()helfen, Speicherbeschränkungen zur Laufzeit zu ermitteln. Anhand dieser Informationen können Sie die Arbeitsspeichernutzung (vertikal) herunterskalieren. So können Sie beispielsweise auf Geräten mit wenig Speicher Bilder mit niedrigerer Auflösung verwenden. - Weitere Informationen zum Verwalten des Speichers Ihrer App finden Sie im Android-Schulungskurs Verwaltung des Speichers Ihrer App.
Vorgänge mit langer Ausführungszeit vermeiden
- Lang andauernde Prozesse bleiben im Arbeitsspeicher und können das Gerät verlangsamen. In den meisten Fällen sollte Ihre App bei einem bestimmten Ereignis aktiviert, Daten verarbeiten und dann wieder geschlossen werden. Verwenden Sie Firebase Cloud Messaging (FCM) und
GcmNetworkManager, um lang laufende Hintergrunddienste zu vermeiden und die Speicherauslastung auf dem Gerät des Nutzers zu reduzieren.
Arbeitsspeicherverbrauch vergleichen
Android Studio bietet Tools für Memory-Benchmarking und ‑Profiling, mit denen Sie die Speichernutzung zur Laufzeit messen können. Wenn Sie den Speicherbedarf Ihrer App vergleichen, können Sie die Arbeitsspeichernutzung über mehrere Versionen der App hinweg im Blick behalten. So lässt sich ein unbeabsichtigtes Wachstum des Speicherbedarfs erkennen. Mit dem Speicher-Profiler-Tool haben Sie folgende Möglichkeiten:
- Herausfinden, ob unerwünschte Muster bei der automatischen Speicherbereinigung (GC) Leistungsprobleme verursachen.
- Identifizieren Sie Objekttypen, die unerwartet oder unnötig zugewiesen werden oder zugewiesen bleiben.
- Identifizieren Sie, wo in Ihrem Code das Problem auftreten könnte.
Weitere Informationen zum Benchmarking der Speichernutzung finden Sie unter Heap und Zuweisungen mit dem Speicher-Profiler ansehen.
Für Geräte mit Android (Go-Edition) optimieren
Android (Go-Edition) ist eine optimierte Version von Android für Einstiegsgeräte mit ≤ 1 GB RAM, beginnend mit Android Oreo (Go-Edition). Damit Ihre App auf Android (Go Edition)-Geräten optimal ausgeführt wird, sollten Sie die folgenden Richtlinien beachten:
- Die targetSdkVersion sollte die aktuelle Android-Version sein. Auf Geräten mit Android (Go-Edition) wird nur Android Oreo (API 27 oder höher) ausgeführt.
- Die App sollte auf Geräten mit ≤1 GB RAM flüssig laufen. Beachten Sie die oben unter Arbeitsspeicher effizient nutzen aufgeführten Arbeitsspeicheroptimierungen und verwenden Sie Android Vitals, um schlechtes Verhalten wie langsames Rendern und eingefrorene Frames zu erkennen und zu beheben.
- Die Funktion Bild im Bild (BiB) ist auf Geräten möglicherweise deaktiviert. Bevor Ihre App den Bild-im-Bild-Modus verwendet, sollten Sie mit dem Aufruf von
hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)prüfen, ob er verfügbar ist. - Die App-Größe auf dem Gerät sollte weniger als 40 MB betragen.
- Die PSS (Proportional Set Size) der RAM-Nutzung der App darf 90 MB nicht überschreiten. Bei Spielen darf die PSS der RAM-Nutzung des Spiels 150 MB nicht überschreiten. Weitere Informationen zu PSS finden Sie im Leitfaden RAM-Nutzung untersuchen.
- Die Startzeit der App sollte minimal und unter 5 Sekunden liegen.
-
SYSTEM_ALERT_WINDOW(mit der Apps ein Fenster über anderen Apps zeichnen können) ist auf Android Go-Geräten mit wenig RAM möglicherweise deaktiviert. Prüfen Sie vor dem Überlagern anderer Apps, ob Ihre App diese Berechtigung hat, indem Sie Settings.canDrawOverlays() aufrufen. Wenn Ihre App die Berechtigung nicht erhalten kann, sorgen Sie für eine graduelle Fehlertoleranz, damit der Nutzer Ihre App weiterhin verwenden kann. Deaktivieren Sie dazu möglicherweise die Funktion, für die die BerechtigungSYSTEM_ALERT_WINDOWerforderlich ist.
Wir empfehlen den meisten Entwicklern, ihre vorhandene App zu optimieren, da sie dann auf allen Android (Go-Edition)-Geräten verfügbar ist. Außerdem profitieren alle Nutzer davon, wenn Ihre App schneller und ressourcenschonender läuft.
Sie können die Funktion für mehrere APKs in der Play Console verwenden, um ein bestimmtes APK für Android (Go-Edition)-Geräte zu verteilen. Dies sollte jedoch nur geschehen, ohne die Nutzerfreundlichkeit zu beeinträchtigen (z. B. sollten Sie keine Funktionen entfernen).
Im APK für Android (Go-Edition)-Geräte muss <uses-feature android:name="android.hardware.ram.low" android:required="true"> deklariert sein, es muss mindestens auf API‑Level 26 ausgerichtet sein und es muss einen höheren Versionscode als das APK für die Nicht-Go-Edition haben.
Weitere Informationen
Zusätzliche Ressourcen
Weitere Informationen zur Unterstützung einer Vielzahl von Geräten finden Sie in der folgenden Ressource: