Supportbibliothek

Hinweis:Mit der Veröffentlichung von Android 9.0 (API-Level 28) wurde eine neue Version der Supportbibliothek namens AndroidX veröffentlicht, die Teil von Jetpack ist. Die AndroidX-Bibliothek enthält die vorhandene Supportbibliothek sowie die neuesten Jetpack-Komponenten.

Sie können die Supportbibliothek weiterhin nutzen. Historische Artefakte (Version 27 und älter und als android.support.* verpackt) bleiben in Google Maven verfügbar. Die Entwicklung neuer Bibliotheken erfolgt jedoch vollständig in der AndroidX-Bibliothek.

Wir empfehlen, die AndroidX-Bibliotheken in allen neuen Projekten zu verwenden. Sie sollten auch die Migration vorhandener Projekte zu AndroidX in Betracht ziehen.

Bei der Entwicklung von Apps, die mehrere API-Versionen unterstützen, empfiehlt sich möglicherweise eine Standardmethode, um neuere Funktionen in früheren Android-Versionen bereitzustellen oder auf gleichwertige Funktionen zurückzugreifen. Anstatt Code für frühere Versionen der Plattform zu erstellen, können Sie diese Bibliotheken nutzen, um diese Kompatibilitätsebene bereitzustellen. Darüber hinaus bieten die Supportbibliotheken zusätzliche praktische Klassen und Funktionen, die in der standardmäßigen Framework API nicht verfügbar sind, um die Entwicklung und den Support für mehr Geräte zu vereinfachen.

Die Android Support Library war ursprünglich eine einzelne Binärbibliothek für Apps und hat sich inzwischen zu einer Reihe von Bibliotheken für die App-Entwicklung entwickelt. Viele dieser Bibliotheken werden jetzt dringend empfohlen, wenn nicht sogar unverzichtbar, als Teil der App-Entwicklung.

Dieses Dokument bietet einen Überblick über die Supportbibliothek, damit Sie ihre Komponenten besser verstehen und sie effektiv in Ihrer Anwendung nutzen können.

Achtung:Ab Version 26.0.0 der Support Library (Juli 2017) wurde bei den meisten Supportbibliotheken die mindestens unterstützte API-Ebene für die meisten Bibliothekspakete auf Android 4.0 (API-Level 14) erhöht. Weitere Informationen finden Sie auf dieser Seite unter Versionsunterstützung und Paketnamen.

Verwendungszwecke der Supportbibliotheken

Die Supportbibliotheken können für verschiedene Zwecke genutzt werden. Die Abwärtskompatibilitätsklassen für frühere Versionen der Plattform sind nur eine von ihnen. Hier finden Sie eine vollständige Liste der Möglichkeiten, wie Sie die Supportbibliotheken in Ihrer App verwenden können:

  • Abwärtskompatibilität für neuere APIs: Viele der Supportbibliotheken bieten Abwärtskompatibilität für neuere Framework-Klassen und -Methoden. Die Supportklasse Fragment unterstützt beispielsweise Fragmente auf Geräten, auf denen Versionen vor Android 3.0 (API-Ebene 11) ausgeführt werden.
  • Praktische und Hilfsklassen: Die Supportbibliotheken bieten eine Reihe von Hilfsklassen, insbesondere für die Entwicklung von Benutzeroberflächen. Die Klasse RecyclerView bietet beispielsweise ein Benutzeroberflächen-Widget zum Anzeigen und Verwalten sehr langer Listen, das auf Android-Versionen ab API-Level 7 verwendet werden kann.
  • Fehlerbehebung und Dienstprogramme – Es gibt eine Reihe von Funktionen, die über den Code, den Sie in Ihre Anwendung einbinden, hilfreich sind. Dazu gehören die support-annotations-Bibliothek für verbesserte Code-Lint-Prüfungen von Methodeneingaben und Multidex-Unterstützung zum Konfigurieren und Verteilen von Anwendungen mit mehr als 65.536 Methoden.

Support vs. Framework-APIs verwenden

Supportbibliotheken bieten Klassen und Methoden, die APIs im Android Framework ähnlich sind. Sie fragen sich dann vielleicht, ob Sie die Framework-Version der API oder die entsprechende Supportbibliothek verwenden sollten. Im Folgenden finden Sie die Richtlinien dafür, wann Sie Supportbibliotheksklassen anstelle von Framework-APIs verwenden sollten:

  • Kompatibilität für eine bestimmte Funktion – Wenn Sie eine neuere Plattformfunktion auf Geräten unterstützen möchten, auf denen ältere Versionen der Plattform ausgeführt werden, verwenden Sie die entsprechenden Klassen und Methoden aus der Supportbibliothek.
  • Kompatibilität für Funktionen ähnlicher Bibliothek: Komplexere Supportbibliotheksklassen können von einer oder mehreren zusätzlichen Supportbibliotheksklassen abhängen. Verwenden Sie für diese Abhängigkeiten Supportbibliotheksklassen. Die Supportklasse ViewPager sollte beispielsweise mit den Supportklassen FragmentPagerAdapter oder FragmentStatePagerAdapter verwendet werden.
  • Allgemeine Gerätekompatibilität – Wenn Sie keine bestimmte Plattformfunktion haben, die Sie mit Ihrer App abwärtskompatibel verwenden möchten, sollten Sie in Ihrer App Supportbibliotheksklassen verwenden. Sie können beispielsweise ActivityCompat anstelle der Framework-Klasse Activity verwenden, damit Sie später neuere Funktionen nutzen können, z. B. das neue Berechtigungsmodell, das unter Android 23 (API-Ebene 2.0 (API-Level 2.0) eingeführt wurde).

Supportbibliotheksklassen, die eine kompatible Implementierung von Plattform-API-Klassen bieten, können aufgrund der Einschränkungen der Plattformversion der Hostgeräte möglicherweise nicht den vollen Funktionsumfang im neuesten Release bereitstellen. In diesen Fällen sind die Supportbibliotheksklassen so konzipiert, dass sie fehlertolerant sind und möglicherweise nicht alle Funktionen oder Daten der aktuellen Plattform-API bieten. Aus diesem Grund solltest du die Referenzdokumentation für die von dir verwendeten Bibliotheksklassen und -methoden lesen und gründlich auf Geräten testen, auf denen die früheste von deiner App unterstützte Version der Plattform ausgeführt wird.

Hinweis: Die Supportbibliotheken enthalten keine entsprechenden Klassen und Methoden für jede Framework-API. In einigen Fällen müssen Sie möglicherweise einen Framework-Methodenaufruf mit einer expliziten SDK-Versionsprüfung umschließen und alternativen Code zur Verarbeitung von Methoden bereitstellen, die auf einem Gerät nicht verfügbar sind. Weitere Informationen zur Verwendung von Versionsprüfungen in Ihrem Code finden Sie unter Unterstützung verschiedener Plattformversionen.

Versionsunterstützung und Paketnamen

Einige der Supportbibliothekspakete haben Paketnamen, die die Mindestebene der ursprünglich unterstützten API in einer v#-Notation angeben, z. B. das Paket support-v4. Ab der Support Library 26.0.0 (veröffentlicht im Juli 2017) wurde für alle Supportbibliothekspakete Android 4.0 (API-Level 14) als mindestens unterstütztes API-Level verwendet. Aus diesem Grund sollten Sie bei der Arbeit mit einer aktuellen Version der Supportbibliothek nicht davon ausgehen, dass die v#-Paketnotation eine Mindest-API-Supportstufe angibt. Diese Änderung in den letzten Releases bedeutet auch, dass Bibliothekspakete mit Version 4 und Version 7 die Mindestanforderungen an die von ihnen unterstützten APIs im Wesentlichen erfüllen. Beispielsweise unterstützen sowohl das Paket support-v4 als auch das support-v7-Paket für Releases der Supportbibliothek ab Version 26.0.0 ein API-Level von mindestens 14.

Bibliotheks-Release-Versionen unterstützen

Die Release-Version der Supportbibliothek, z. B. 24.2.0 oder 25.0.1, unterscheidet sich von der Mindest-API-Ebene, die von einer Bibliothek in diesem Release unterstützt wird. Die Versionsnummer des Release gibt an, für welche Version der Plattform-API sie erstellt wurde und daher die neuesten APIs in dieser Version der Bibliotheken enthalten sein dürfen.

Insbesondere entspricht der erste Abschnitt der Release-Versionsnummer, z. B. 24 in Version 24.2.0, der Version der Plattform-API, die zum Zeitpunkt der Veröffentlichung verfügbar war. Aus der Release-Versionsebene der Supportbibliothek geht hervor, dass sie einige Funktionen dieser API-Ebene enthält. Sie sollten jedoch nicht davon ausgehen, dass sie mit allen Funktionen kompatibel ist, die in der neuen Plattform-API-Version veröffentlicht wurden.

Bibliotheksabhängigkeiten

Die meisten Bibliotheken in der Android Support Library-Suite sind von einer oder mehreren Bibliotheken abhängig. Beispielsweise haben fast alle Supportbibliotheken eine Abhängigkeit vom Paket support-compat. Im Allgemeinen müssen Sie sich keine Gedanken über die Unterstützung von Bibliotheksabhängigkeiten machen, da das Build-Tool von Gradle die Bibliotheksabhängigkeiten für Sie verwaltet, indem abhängige Bibliotheken automatisch einbezogen werden.

Wenn Sie sehen möchten, welche Bibliotheken und Bibliotheksabhängigkeiten in Ihrer App enthalten sind, führen Sie den folgenden Befehl im Build-Stammverzeichnis Ihres App-Entwicklungsprojekts aus, um einen Bericht über die Abhängigkeiten für dieses Projekt zu erhalten, einschließlich Android-Supportbibliotheken und anderen Bibliotheken:

gradle -q dependencies your-app-project:dependencies

Weitere Informationen zum Hinzufügen von Supportbibliotheken zu Ihrem Entwicklungsprojekt mit Gradle finden Sie unter Unterstützung der Bibliothek einrichten. Weitere Informationen zur Arbeit mit Gradle findest du unter Build konfigurieren.

Beachten Sie, dass alle Android-Supportbibliotheken auch von einigen Basis-Levels der Plattform abhängen. Bei aktuellen Releases ist das Android 4.0 (API-Level 14) oder höher.