Die neuesten Android-Versionen bieten zwar oft großartige APIs für Ihre App, Sie sollten aber weiterhin ältere Android-Versionen unterstützen, bis mehr Geräte aktualisiert werden. In dieser Lektion erfahren Sie, wie Sie die neuesten APIs nutzen und gleichzeitig ältere Versionen unterstützen können.
Mit dem Assistenten Neues Projekt in Android Studio können Sie die Verteilung der aktiven Geräte ermitteln, auf denen die einzelnen Android-Versionen ausgeführt werden. Diese Verteilung basiert auf der Anzahl der Geräte, die den Google Play Store aufrufen. Im Allgemeinen empfehlen wir, etwa 90% der aktiven Geräte zu unterstützen und Ihre App auf die neueste Version auszurichten.
Tipp:Damit Sie die besten Funktionen und Features für mehrere Android-Versionen bereitstellen können, sollten Sie die Android Support Library in Ihrer App verwenden. So können Sie mehrere aktuelle Plattform-APIs in älteren Versionen nutzen.
Mindest- und Ziel-API-Levels angeben
In der Datei AndroidManifest.xml werden Details zu Ihrer App beschrieben und es wird angegeben, welche Android-Versionen unterstützt werden. Insbesondere die Attribute minSdkVersion
und targetSdkVersion
für das Element <uses-sdk>
geben das niedrigste API-Level an, mit dem Ihre App kompatibel ist, und das höchste API-Level, für das Sie Ihre App entwickelt und getestet haben.
Beispiel:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
Mit der Veröffentlichung neuer Android-Versionen können sich einige Stile und Verhaltensweisen ändern.
Damit Ihre App diese Änderungen nutzen kann und zum Stil des Geräts jedes Nutzers passt, sollten Sie den Wert targetSdkVersion
auf die neueste verfügbare Android-Version festlegen.
Da Nebenversionen des SDK nicht an Verhaltensänderungen gebunden sind, ist es nicht möglich, targetSdkVersion
so festzulegen, dass eine Nebenversion des SDK berücksichtigt wird. Wenn Sie eine API in einer Nebenversion des SDK aufrufen möchten, die neuer als minSdkVersion
ist, prüfen Sie die Systemversion zur Laufzeit.
Systemversion zur Laufzeit prüfen
Android stellt in der Konstantenklasse Build
einen eindeutigen Code für jede Plattformversion bereit. Verwenden Sie diese Codes in Ihrer App, um Bedingungen zu erstellen, die dafür sorgen, dass der Code, der von höheren API-Levels abhängt, nur ausgeführt wird, wenn diese 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); } }
Mit Build.VERSION.SDK_INT_FULL können Sie prüfen, ob eine Haupt- oder Nebenversion des SDK vorhanden ist.
Kotlin
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) { // Use APIs introduced in a major or minor SDK release }
Java
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) { // Use APIs introduced in a major or minor SDK release }
Hinweis:Beim Parsen von XML-Ressourcen ignoriert Android XML-Attribute, die vom aktuellen Gerät nicht unterstützt werden. Sie können also XML-Attribute, die nur von neueren Versionen unterstützt werden, bedenkenlos verwenden, ohne sich Sorgen machen zu müssen, dass ältere Versionen bei diesem Code abstürzen. Wenn Sie beispielsweise targetSdkVersion="11"
festlegen, enthält Ihre App unter Android 3.0 und höher standardmäßig ActionBar
. Wenn Sie der Aktionsleiste Menüelemente hinzufügen möchten, müssen Sie android:showAsAction="ifRoom"
in Ihrem Menüressourcen-XML festlegen. Das ist in einer versionsübergreifenden XML-Datei problemlos möglich, da die älteren Android-Versionen das Attribut showAsAction
einfach ignorieren. Sie benötigen also keine separate Version in res/menu-v11/
.
Plattformstile und ‑designs verwenden
Android bietet Themes für die Benutzeroberfläche, die Apps das Erscheinungsbild des zugrunde liegenden Betriebssystems verleihen. Diese Designs können in der Manifestdatei auf Ihre App angewendet werden. Wenn Sie diese integrierten Stile und Designs verwenden, entspricht Ihre App mit jedem neuen Release automatisch dem aktuellen Look and Feel von Android.
So lassen Sie Ihre Aktivität wie ein Dialogfeld aussehen:
<activity android:theme="@android:style/Theme.Dialog">
So machen Sie den Hintergrund Ihrer Aktivität transparent:
<activity android:theme="@android:style/Theme.Translucent">
So wenden Sie Ihr eigenes benutzerdefiniertes Design an, das in /res/values/styles.xml
definiert ist:
<activity android:theme="@style/CustomTheme">
Wenn Sie ein Design auf Ihre gesamte App (alle Aktivitäten) anwenden möchten, fügen Sie dem <application>
-Element das Attribut android:theme
hinzu:
<application android:theme="@style/CustomTheme">
Weitere Informationen zum Erstellen und Verwenden von Designs finden Sie im Leitfaden Stile und Designs.