Auch wenn die neuesten Android-Versionen oft hervorragende APIs für deine App bieten, solltest du ältere Android-Versionen weiterhin unterstützen, bis mehr Geräte aktualisiert werden. In dieser Lektion erfahren Sie, wie Sie die neuesten APIs nutzen und gleichzeitig auch ältere Versionen unterstützen können.
Verwenden Sie den Android Studio-Assistenten Neues Projekt, um die Verteilung der aktiven Geräte zu ermitteln, auf denen die einzelnen Android-Versionen ausgeführt werden. Diese Verteilung basiert auf der Anzahl der Geräte, die den Google Play Store besuchen. Im Allgemeinen empfehlen wir, etwa 90% der aktiven Geräte zu unterstützen, während Sie Ihre App auf die neueste Version ausrichten.
Tipp:Damit Sie in mehreren Android-Versionen die besten Funktionen bieten können, sollten Sie die Android Support Library in Ihrer App verwenden. Damit können Sie mehrere aktuelle Plattform-APIs unter älteren Versionen nutzen.
Mindest- und Ziel-API-Level angeben
Die Datei AndroidManifest.xml enthält Details zu Ihrer App und gibt an, welche Android-Versionen sie unterstützt. Die Attribute minSdkVersion
und targetSdkVersion
für das Element <uses-sdk>
identifizieren die niedrigste API-Ebene, mit der Ihre App kompatibel ist, und die höchste API-Ebene, für die Sie Ihre App entworfen und getestet haben.
Beispiele:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
Wenn neue Versionen von Android veröffentlicht werden, können sich Stil und Verhaltensweisen ändern.
Damit deine App von diesen Änderungen profitieren und sie zum Gerät des jeweiligen Nutzers passt, solltest du den Wert targetSdkVersion
so festlegen, dass er der neuesten verfügbaren Android-Version entspricht.
Systemversion zur Laufzeit prüfen
Android stellt für jede Plattformversion in der Build
-Konstantenklasse einen eindeutigen Code zur Verfügung. Verwenden Sie diese Codes in Ihrer App, um Bedingungen zu erstellen, die dafür sorgen, dass der von höheren API-Levels abhängende Code nur ausgeführt wird, wenn die entsprechenden APIs auf dem System verfügbar sind.
Kotlin
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
Java
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Hinweis:Beim Parsen von XML-Ressourcen ignoriert Android XML-Attribute, die vom aktuellen Gerät nicht unterstützt werden. So können Sie XML-Attribute bedenkenlos verwenden, die nur von neueren Versionen unterstützt werden, ohne befürchten zu müssen, dass ältere Versionen nicht mehr funktionieren, wenn dieser Code auftritt. Wenn Sie beispielsweise targetSdkVersion="11"
festlegen, enthält Ihre App unter Android 3.0 und höher standardmäßig ActionBar
. Damit Sie der Aktionsleiste Menüpunkte hinzufügen können, müssen Sie in der XML-Datei Ihrer Menüressource android:showAsAction="ifRoom"
festlegen. Du kannst dies bedenkenlos in einer versionsübergreifenden XML-Datei tun, da die älteren Versionen von Android das Attribut showAsAction
einfach ignorieren. Du benötigst also keine separate Version in res/menu-v11/
.
Plattformstile und -designs verwenden
Android bietet Designs, die Apps das Erscheinungsbild des zugrunde liegenden Betriebssystems verleihen. Diese Designs können in der Manifestdatei auf deine App angewendet werden. Wenn Sie diese integrierten Stile und Designs verwenden, entspricht Ihre App bei jeder neuen Version dem neuesten Design von Android.
So lassen Sie Ihre Aktivität wie ein Dialogfeld aussehen:
<activity android:theme="@android:style/Theme.Dialog">
So legen Sie fest, dass Ihre Aktivitäten einen transparenten Hintergrund haben:
<activity android:theme="@android:style/Theme.Translucent">
So wenden Sie Ihr eigenes in /res/values/styles.xml
definiertes Design an:
<activity android:theme="@style/CustomTheme">
Wenn Sie ein Design auf Ihre gesamte App (alle Aktivitäten) anwenden möchten, fügen Sie dem Element <application>
das Attribut android:theme
hinzu:
<application android:theme="@style/CustomTheme">
Weitere Informationen zum Erstellen und Verwenden von Designs finden Sie im Leitfaden Designs und Designs.