Unterschied zwischen android-support-v7-appcompat und android-support-v4

147

Ich wollte den Unterschied zwischen android-support-v4.jar und android-support-v7-appcompat.jar kennen . Wenn ich die Appcompat-Aktionsleiste zu meiner Anwendung hinzufügen möchte, muss ich sowohl android-support-v7-appcompat.jar als auch android-support-v4.jar oder nur android-support-v7-appcompat.jar hinzufügen .

Auch dann , wenn Android-Support-v13.jar hat appcompat?

Tarun
quelle

Antworten:

170

AKTUALISIEREN

Seit der Beantwortung dieser Frage wurden viele Änderungen an der Support-Bibliothek vorgenommen. Gut ist, dass es auch sehr gut dokumentiert ist. Sie müssen daher die Dokumentation zur Support-Bibliothek lesen, um weitere Details und eine verfügbare Support-Bibliothek zu erhalten.

Ab Version 26.0.0 der Support Library (Juli 2017) wurde die minimale unterstützte API-Stufe für die meisten Support-Bibliotheken für die meisten Bibliothekspakete auf Android 4.0 (API-Stufe 14) erhöht.


Nachfolgend finden Sie einen Unterschied zu Support Library-Paketen :

v4 Support Library

Diese Bibliothek wurde für die Verwendung mit Android 1.6 (API-Stufe 4) entwickelt. Android 2.3 (API-Stufe 9), Android 4.0 (API-Stufe 14) und höher entwickelt. Es enthält den größten Satz von APIs im Vergleich zu den anderen Bibliotheken, einschließlich Unterstützung für Anwendungskomponenten, Benutzeroberflächenfunktionen, Zugänglichkeit, Datenverarbeitung, Netzwerkkonnektivität und Programmierdienstprogramme.

v7 Bibliotheken

Es gibt mehrere Bibliotheken, die für die Verwendung mit Android 2.1 (API-Stufe 7) entwickelt wurden. Android 2.3 (API-Stufe 9) Android 4.0 (API-Stufe 14) und höher entwickelt wurden. Diese Bibliotheken bieten spezifische Funktionen und können unabhängig voneinander in Ihre Anwendung aufgenommen werden.

v7 Appcompat-Bibliothek

Diese Bibliothek bietet Unterstützung für das Entwurfsmuster der Benutzeroberfläche der Aktionsleiste.

Hinweis: Diese Bibliothek hängt von der v4-Unterstützungsbibliothek ab. Wenn Sie Ant oder Eclipse verwenden, stellen Sie sicher, dass Sie die v4-Unterstützungsbibliothek als Teil des Klassenpfads dieser Bibliothek einschließen.

Ja, Sie benötigen beide Gläser, wenn Sie v7 verwenden möchten.


Update für android-support-v13.jar

v13 Support Library

Diese Schnittstelle war in API-Level 27.1.0 veraltet. Verwenden Sie Fragment anstelle des Framework-Fragments.

v13 Support Library

Diese Bibliothek wurde für Android 3.2 (API Level 13) und höher entwickelt. Es fügt Unterstützung für das Muster der Fragment-Benutzeroberfläche mit der Klasse (FragmentCompat) und zusätzlichen Fragment-Unterstützungsklassen hinzu

Wenn Sie die Paketdetails sehen , hat es eine Klasse FragmentCompat, wie in der Definition angegeben. Es hat also nicht alle Klassen der Appcompat-Bibliothek.

Pankaj Kumar
quelle
2
Wenn Sie eine App von min api 19 entwickeln. Benötigen Sie diese?
2
v4-Unterstützungsbibliotheken - Diese Bibliotheken sind für die Verwendung mit Android 2.3 (API-Stufe 9) und höher ausgelegt.
Vadik
1
Und v7-Unterstützungsbibliotheken - Es gibt mehrere Bibliotheken, die für die Verwendung mit Android 2.3 (API-Stufe 9) und höher entwickelt wurden.
Vadik
@ user5366495 Wahrscheinlich ja. Die meisten der guten Dinge sind für API21 and above und wenn Sie es auf niedriger verwenden möchten, sollten Sie die Support-Bibliothek dafür verwenden. Vielleicht brauchen Sie es noch für API19.
Mahdi-Malv
48

Was ist eine Support-Bibliothek?

Unterstützungsbibliotheken sind Codebibliotheken (Sammlung von Klassen), mit denen eine neu hinzugefügte Funktion für ältere Geräte verwendet werden kann.
Beispielsweise wurde Material Design in API 21 (Android 5.0 - Lolipop) eingeführt, jedoch in
der v7-Unterstützungsbibliothek stellt es für API 7 (Android 2.1.x -Eclair) und höher zur Verfügung.

Was sind verschiedene Support-Bibliotheken?

Einige der wichtigsten Unterstützungsbibliotheken sind

  • V4-Unterstützungsbibliothek

  • V7-Unterstützungsbibliothek

  • V8-Unterstützungsbibliothek

  • v13 Support-Bibliothek

Wofür steht 7 in der v7 Support Library?

Dies bedeutet, dass diese Bibliothek über Funktionen verfügt, die für die Verwendung mit API Level 7 und höher entwickelt wurden. Gleiches gilt für V4 (enthält Funktionen für API 4 und höher) und so weiter.

Unterschied zwischen v7 Support Library und v7 Appcompat Library?

Nur wenige Leute, einschließlich mir, werden mit diesen beiden Begriffen verwechselt. Tatsächlich ist die Appcompat-Bibliothek von v7 Teil der Support-Bibliothek von v7. Die v7-Unterstützungsbibliothek wurde hauptsächlich zur Unterstützung des Materialdesigns und des ActionBar-Designmusters für API 7 und höher entwickelt.
V7 kann in mehrere Unterkategorien eingeteilt werden

  • v7 Appcompat-Bibliothek

  • v7 cardView Bibliothek

  • v7 recyclerView Bibliothek

  • v7 Palettenbibliothek usw.

Die v7-Appcompat-Bibliothek verfügt über die folgenden Schlüsselklassen: ActionBar, ActionBarActivity und ShareActionProvider.

Also hinzufügen,

com.android.support:appcompat-v7:21.0.+

Abhängig von Ihrer Gradle-Datei werden die oben genannten Klassen importiert.

Bonus

Andere Unterstützungsbibliotheken

Multidex Support Library (Zum Erstellen von Apps mit mehr als 65.000 Methoden)
v17 Leanback-Unterstützungsbibliothek (Eine Unterstützungsbibliothek, die wichtige Widgets für Android TV bereitstellt)

Relevante Links

Rohit Singh
quelle
6
Dies sollte die akzeptierte Antwort sein, erklärt alles klar in einfachen Worten.
gegobyte
44

Support-Bibliothek nur erforderlich, wenn Ihre SDK-Mindestversion unter API Level 11 liegt. Andernfalls müssen Sie Ihrem Projekt keine Support-Bibliothek für Api Level 11 oder höher hinzufügen.

android-support-v4.jar: Unterstützungsklassen android.appzur Unterstützung der Entwicklung von Anwendungen für Android API Level 4 oder höher. Damit Sie Ihr Anwendungs-Backword kompatibel machen können,

android-support-v7.jar Es wurde kürzlich in der neuesten Aktualisierung der Support-Bibliothek hinzugefügt. ActionBar, um die Implementierung des Entwurfsmusters für die Benutzeroberfläche der Aktionsleiste auf Android 2.1 (API-Stufe 7) und höher zu ermöglichen. Für die Verwendung dieser Klasse müssen Sie Ihre Aktivität implementieren, indem Sie die neue ActionBarActivityKlasse erweitern.

Wenn ich meiner Anwendung eine Appcompat-Aktionsleiste hinzufügen möchte, muss ich sowohl android-support-v7-appcompat.jar als auch android-support-v4.jar oder nur android-support-v7-appcompat.jar hinzufügen.

Ja, Sie müssen einen Verweis auf beide Bibliotheken hinzufügen, wenn Sie ihn verwenden möchten.

hat android-support-v13.jar appcompat?

Nein, es enthält FragmentCompat, sodass Sie, wenn einige der Fragmentfunktionen nach Version 13 hinzugefügt wurden, das Backword mit Api Level 11 kompatibel machen können, sodass Application Targeting API 11 oder höher Funktionen verwenden kann, die in neueren Versionen hinzugefügt wurden.

Bhavesh Patadiya
quelle
9
DrawerLayout/ NavigationDrawerexistiert derzeit nur in Support-Bibliotheken.
Kiran
3
Es gibt andere Komponenten, die Sie in Ihrer Android-App verwenden können, die auf einer der Unterstützungsbibliotheken basieren, die standardmäßig nicht in APIs mit mehr als 11 enthalten sind, z. B. com.android.support:multidex:1.0.0 und com.android. Unterstützung: Design: 23.1.0. Überprüfen Sie dies für vollständige Informationen: developer.android.com/tools/support-library/features.html
aselims
Wie Google in developer.android.com/topic/libraries/support-library/… sagt , gibt es keinen Unterschied zwischen v4-Unterstützung und v7-Unterstützung. beide sind für api 9 und höher. Ist das wahr?!
Mahdi
Kenji, ja, das stimmt. Die Unterstützung von Google Shift Min von 4 auf 9 und von 7 auf 9 und beide Bibliotheken duplizieren sich jetzt gegenseitig.
Jaroslaw Havrylovych
Wenn Sie eine App von min api 19 entwickeln. Benötigen Sie diese?
10

Zunächst müssen wir verstehen, was die Android Support Library ist .

Die Android Support Library wurde ursprünglich im Jahr 2011 veröffentlicht. Sie können sagen, dass die Android Support Library als Android Compatibility Library neuere APIs für ältere Releases bereitstellt. Die Geschichte reicht jedoch nicht aus.

Dies kann wenig verwirrend sein, da Support-Bibliotheken mit höheren Versionsnummern die Funktionen früherer Bibliotheken enthalten (Sie könnten denken, dass v7-appcompat die Funktionen von v4 verbessert und alle Funktionen enthält). In den meisten Fällen ist dies falsch. Die Bibliotheken selbst haben jedoch eine Versionsnummer. Beispielsweise bezieht sich „AppCompat v21“ tatsächlich auf die Unterstützungsbibliothek v7-appcompat, Version 21.

Die Android Support Library ist keine einzelne Bibliothek, kann jedoch grob in zwei Gruppen unterteilt werden: Kompatibilitäts- und Komponentenbibliotheken.

1-Kompatibilitätsbibliotheken konzentrieren sich auf das Backportieren von Funktionen aus neueren Framework-Versionen, damit Geräte, auf denen frühere Versionen ausgeführt werden, die neueren APIs nutzen können. Die wichtigsten Kompatibilitätsbibliotheken sind v4 und v7-appcompat.

v4-Bibliothek : Sie enthält viele Funktionen und unterstützt, wie der Name schon sagt, die Verwendung von API 4. Um Implementierungen für Hauptklassen wie Fragment und Loader (die beide im Framework in API 11 eingeführt wurden) zu unterstützen, werden Sie dies auch tun Hier finden Sie mehrere weit verbreitete Klassen, die im Framework überhaupt nicht vorhanden sind, z. B. ViewPager und DrawerLayout.

v7-appcompat : Die v7-appcompat-Bibliothek bietet Support-Implementierungen für ActionBar (eingeführt in API 11) und Toolbar (eingeführt in API 21) für Releases zurück zu API 7. Sie erfordert die v4-Bibliothek, enthält sie jedoch nicht. Somit ist jedes von v7-appcompat abhängige Merkmal auch von v4 abhängig.

2-Komponenten-Bibliotheken Die Android Support Library bietet auch kleinere, modularere Komponentenbibliotheken, mit denen Entwickler Funktionen hinzufügen können, die ansonsten nicht Teil des Standard-Frameworks sind. Diese in sich geschlossenen Bibliotheken können ohne Rücksicht auf Abhängigkeiten einfach zu einem Projekt hinzugefügt oder daraus entfernt werden. Es sind mehrere wertvolle Komponentenbibliotheken zu berücksichtigen:

v7-recyclerview : Bietet die RecyclerView-Komponente, die große Datenmengen effizient anzeigt und animiert und ListView ersetzt

v7-cardview : Stellt die CardView-Komponente bereit und aktiviert das Entwurfsmuster der Karten-Benutzeroberfläche

v7-gridlayout : Stellt die GridLayout-Klasse bereit, mit der UI-Elemente in einem rechteckigen Raster organisiert werden können. Etc..

Andere Bibliotheken Die Android Support Library enthält auch einige andere Bibliotheken, die weniger häufig verwendet werden, aber dennoch erwähnenswert sind:

v8: bietet Unterstützung für RenderScript (eingeführt in API 11) zurück zu API 8

v13 : Bietet zusätzliche Kompatibilitätsunterstützung für das Fragment-UI-Muster und bündelt die v4-Bibliothek

v17 : Bietet Unterstützung beim Erstellen von TV-Benutzeroberflächen

Wann sollte ich die Android Support Library verwenden?

Sie sollten eine der Unterstützungsbibliotheken verwenden, wenn Sie bestimmte Framework-Funktionen benötigen, die neuer als die minSdkVersion Ihrer App sind oder im Standard-Framework nicht verfügbar sind.

und ich verweise auf dieses Tutorial

Farhana
quelle
5

Diese Antwort ist relevant für Clients von Support-Bibliotheken, deren Version> = 26.0.0 ist:

Achtung : Ab Version 26.0.0 der Support Library (Juli 2017) wurde die minimale unterstützte API-Stufe in den meisten Support-Bibliotheken für die meisten Bibliothekspakete auf Android 4.0 (API-Stufe 14) erhöht .

Beispielsweise unterstützen sowohl das support-v4- als auch das support-v7-Paket eine Mindest-API-Stufe von 14 für Versionen der Support-Bibliothek ab 26.0.0 .

Weitere Informationen finden Sie unter Support Library - Versionsunterstützung und Paketnamen .

Eido95
quelle