Różnica między android-support-v7-appcompat i android-support-v4


147

Chciałem poznać różnicę między android-support-v4.jar i android-support-v7-appcompat.jar . Jeśli chcę dodać pasek akcji appcompat do mojej aplikacji, muszę dodać zarówno android-support-v7-appcompat.jar i android-support-v4.jar, czy tylko android-support-v7-appcompat.jar .

Ponadto, czy android-support-v13.jar ma appcompat?

Odpowiedzi:


170

AKTUALIZACJA

Od czasu odpowiedzi na to pytanie w bibliotece wsparcia wprowadzono wiele zmian. Dobrze, że jest to również bardzo dobrze udokumentowane. Dlatego musisz przeczytać dokumentację biblioteki pomocy technicznej, aby uzyskać więcej informacji i bardziej dostępną bibliotekę pomocy.

Począwszy od wersji biblioteki pomocy technicznej 26.0.0 (lipiec 2017 r.), Minimalny obsługiwany poziom interfejsu API w większości bibliotek obsługi został zwiększony do systemu Android 4.0 (poziom interfejsu API 14) dla większości pakietów bibliotek.


Poniżej znajduje się różnica w stosunku do pakietów bibliotek wsparcia :

Biblioteka obsługi v4

Ta biblioteka jest przeznaczona do użytku z systemem Android 1.6 (poziom interfejsu API 4), systemem Android 2.3 (poziom interfejsu API 9), systemem Android 4.0 (poziom interfejsu API 14) i nowszym. Obejmuje największy zestaw interfejsów API w porównaniu z innymi bibliotekami, w tym obsługę składników aplikacji, funkcje interfejsu użytkownika, dostępność, obsługę danych, łączność sieciową i narzędzia programistyczne.

Biblioteki w wersji 7

Istnieje kilka bibliotek zaprojektowanych do użytku z systemem Android 2.1 (poziom interfejsu API 7), systemem Android 2.3 (poziom interfejsu API 9), systemem Android 4.0 (poziom interfejsu API 14) i nowszym. Te biblioteki zapewniają określone zestawy funkcji i mogą być dołączane do aplikacji niezależnie od siebie.

biblioteka appcompat v7

Ta biblioteka dodaje obsługę wzorca projektowania interfejsu użytkownika paska akcji.

Uwaga: ta biblioteka zależy od biblioteki obsługi wersji 4. Jeśli używasz Ant lub Eclipse, upewnij się, że dołączasz bibliotekę obsługi v4 jako część ścieżki klas tej biblioteki.

Więc tak, potrzebujesz obu słoików, jeśli chcesz używać v7.


Aktualizacja dla android-support-v13.jar

Biblioteka obsługi wersji 13

Ten interfejs został wycofany na poziomie API 27.1.0. Użyj fragmentu zamiast fragmentu struktury.

Biblioteka obsługi wersji 13

Ta biblioteka jest przeznaczona do użytku w systemie Android 3.2 (poziom interfejsu API 13) i nowszych. Dodaje obsługę wzorca interfejsu użytkownika Fragment z klasą (FragmentCompat) i dodatkowymi klasami obsługi fragmentów

Gdy widzisz szczegóły pakietu , ma on klasę FragmentCompat, jak podano w definicji. Więc nie ma wszystkich klas biblioteki appcompat.


2
Jeśli tworzysz aplikację od min api 19. Czy potrzebujesz ich?

2
Biblioteki obsługi wersji 4 - te biblioteki są przeznaczone do użytku z systemem Android 2.3 (poziom interfejsu API 9) i nowszym.
Vadik,

1
I v7 Wsparcia Bibliotek - Istnieje kilka bibliotek zaprojektowane do użytku z systemem Android 2.3 (API poziomie 9) i wyższej.
Vadik

@ user5366495 Prawdopodobnie tak. Większość dobrych rzeczy jest przeznaczona API21 and above i jeśli chcesz z nich korzystać na niższych poziomach, powinieneś skorzystać z biblioteki wsparcia. Więc nadal możesz go potrzebować API19.
Mahdi-Malv,

48

Co to jest biblioteka wsparcia?

Biblioteki pomocnicze to biblioteki kodu (kolekcja klas), co sprawia, że ​​nowo dodana funkcja działa ze starszymi urządzeniami.
Na przykład Materiał Projekt został wprowadzony w API 21 (Android 5.0 - Lolipop) ale biblioteka v7 obsługa sprawia, że jest dostępny dla API 7 (Android 2.1.x -Eclair) i wyższe.

Jakie są różne biblioteki wsparcia?

Niektóre z głównych bibliotek pomocniczych to

  • Biblioteka obsługi V4

  • Biblioteka wsparcia V7

  • Biblioteka obsługi V8

  • Biblioteka wsparcia v13

Co oznacza 7 w bibliotece obsługi wersji 7?

Oznacza to, że ta biblioteka ma funkcje zaprojektowane do użytku z interfejsem API na poziomie 7 i wyższym. To samo dotyczy V4 (zawiera funkcje przeznaczone dla API 4 i nowszych) i tak dalej.

Różnica między biblioteką obsługi wersji 7 a biblioteką Appcompat w wersji 7?

Niewiele osób, w tym ja, myli się z tymi dwoma terminami. W rzeczywistości biblioteka appcompat v7 jest częścią biblioteki obsługi v7. Biblioteka obsługi wersji 7 została opracowana głównie w celu obsługi wzorców projektowania materiałów i ActionBar dla API 7 i nowszych.
V7 można podzielić na więcej podkategorii

  • biblioteka appcompat v7

  • Biblioteka cardView w wersji 7

  • Biblioteka recyklingu v7

  • biblioteka v7 pallete itp

Biblioteka appcompat w wersji 7 ma następujące klasy kluczy: ActionBar, ActionBarActivity, ShareActionProvider.

Więc dodając,

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

zależności w twoim pliku gradle, importuje wyżej wymienione klasy.

Premia

Inne biblioteki wsparcia

Biblioteka obsługi Multidex (do tworzenia aplikacji z ponad 65 tys. Metod)
Biblioteka obsługi V17 Leanback (biblioteka obsługi, która zapewnia ważne widżety dla Android TV)

Odpowiednie linki


6
To powinna być akceptowana odpowiedź, jasno wyjaśnia wszystko prostymi słowami.
gegobyte

44

Biblioteka wsparcia jest wymagana tylko wtedy, gdy minimalna wersja sdk jest niższa niż poziom interfejsu API 11. W przeciwnym razie nie musisz dodawać biblioteki obsługi do swojego projektu dla poziomu interfejsu API 11 lub wyższego.

android-support-v4.jar: Wsparcie android.appklas do pomocy w rozwoju aplikacji dla Androida poziomie API 4 lub nowszym. Abyś mógł dostosować hasło do aplikacji,

android-support-v7.jar Został ostatnio dodany w najnowszej aktualizacji biblioteki wsparcia. ActionBar, aby umożliwić implementację wzorca interfejsu użytkownika paska akcji z powrotem do systemu Android 2.1 (poziom interfejsu API 7) i nowszych. Użycie tej klasy wymaga zaimplementowania działania poprzez rozszerzenie nowej ActionBarActivityklasy.

Jeśli chcę dodać pasek akcji appcompat w mojej aplikacji, muszę dodać zarówno android-support-v7-appcompat.jar i android-support-v4.jar, czy tylko android-support-v7-appcompat.jar.

Tak, musisz dodać odwołania do obu bibliotek, jeśli chcesz z nich korzystać.

czy android-support-v13.jar ma appcompat?

Nie, zawiera FragmentCompat, więc jeśli część funkcji Fragment zostanie dodana po wersji 13, to możesz uczynić ją kompatybilną z interfejsem API na poziomie 11., aby aplikacja docelowa API 11 lub nowsza mogła korzystać z funkcji, która została dodana w nowszych wersjach.


9
DrawerLayout/ NavigationDrawerobecnie istnieje tylko w bibliotekach wsparcia.
Kiran

3
Istnieją inne składniki, których możesz użyć w swojej aplikacji na Androida, które są oparte na jednej z bibliotek obsługi, która nie jest domyślnie uwzględniona w interfejsach API więcej niż 11, takich jak com.android.support:multidex:1.0.0 i com.android. wsparcie: projekt: 23.1.0. sprawdź to, aby uzyskać pełne informacje: developer.android.com/tools/support-library/features.html
aselims

jak mówi Google na stronie developer.android.com/topic/libraries/support-library/ ... nie ma różnicy między obsługą wersji 4 a obsługą wersji 7. oba są przeznaczone dla interfejsu API 9 i nowszych. czy to prawda?!
Mahdi

Kenji, tak, to prawda. Obsługa min zmiany Google z 4 na 9 iz 7 na 9, a obie biblioteki teraz się duplikują.
Yaroslav Havrylovych

Jeśli tworzysz aplikację od min api 19. Czy potrzebujesz ich?

10

Po pierwsze, musimy zrozumieć, czym jest biblioteka obsługi Androida ?

Biblioteka obsługi Androida została pierwotnie wydana w 2011 r. Można powiedzieć, że jako Biblioteka zgodności systemu Android. Biblioteka obsługi systemu Android zapewnia nowsze interfejsy API dla starszych wersji. Ale historia to za mało.

może to być trochę mylące, ponieważ obsługujące biblioteki z wyższymi numerami wersji zawierają funkcje z poprzednich bibliotek (możesz pomyśleć, że v7-appcompat jest ulepszony i zawiera wszystkie funkcje z v4). W większości przypadków jest to niepoprawne, ale same biblioteki mają numer wersji. Na przykład „AppCompat v21” w rzeczywistości odnosi się do biblioteki obsługi v7-appcompat, wersja 21.

Biblioteka obsługi systemu Android nie jest pojedynczą biblioteką, ale można ją z grubsza podzielić na dwie grupy: biblioteki zgodności i biblioteki komponentów.

Biblioteki zgodności 1 koncentrują się na przenoszeniu funkcji z nowszych wersji platformy, aby urządzenia z poprzednimi wersjami mogły korzystać z nowszych interfejsów API. Główne biblioteki kompatybilności to v4 i v7-appcompat.

Biblioteka v4 : zawiera wiele funkcji i, jak sama nazwa wskazuje, obsługuje powrót do API 4. Ponadto, aby obsługiwać implementacje głównych klas, takich jak Fragment i Loader (które zostały wprowadzone do frameworka w API 11), będziesz również znaleźć kilka powszechnie używanych klas, których w ogóle nie ma we frameworku, takich jak ViewPager i DrawerLayout.

v7-appcompat : biblioteka v7-appcompat zapewnia obsługę implementacji ActionBar (wprowadzonego w API 11) i Toolbar (wprowadzonego w API 21) dla wydań z powrotem do API 7. Wymaga biblioteki v4, ale jej nie zawiera. Zatem każda funkcja zależna od v7-appcompat jest również zależna od v4.

Biblioteki 2-składnikowe Biblioteka obsługi systemu Android udostępnia również mniejsze, bardziej modułowe biblioteki składników, które umożliwiają programistom dodawanie funkcji, które w innym przypadku nie byłyby częścią standardowej struktury. Te niezależne biblioteki można łatwo dodawać lub usuwać z projektu bez obawy o zależności. Istnieje kilka cennych bibliotek komponentów, które należy wziąć pod uwagę:

v7- recyclinglerview: zapewnia składnik RecyclerView, który wydajnie wyświetla i animuje duże ilości danych i jest przeznaczony do zastąpienia ListView

v7-cardview : udostępnia składnik CardView , umożliwiając wzorzec projektowania interfejsu użytkownika karty

v7-gridlayout : udostępnia klasę GridLayout, która umożliwia organizowanie elementów interfejsu użytkownika w prostokątną siatkę. Itp..

Inne biblioteki Biblioteka obsługi systemu Android zawiera również kilka innych bibliotek, które są używane rzadziej, ale nadal warto o nich wspomnieć:

v8: zapewnia obsługę RenderScript (wprowadzonego w API 11) z powrotem do API 8

v13 : zapewnia dodatkową obsługę zgodności dla wzorca interfejsu użytkownika fragmentów i zawiera bibliotekę v4

v17 : zapewnia obsługę tworzenia interfejsów telewizyjnych

Kiedy należy korzystać z Biblioteki obsługi Androida?

Powinieneś użyć jednej z bibliotek pomocniczych, gdy potrzebujesz określonych funkcji frameworka, które są nowsze niż minSdkVersion twojej aplikacji lub które nie są dostępne w standardowej strukturze.

i odsyłam do tego samouczka


5

Ta odpowiedź dotyczy klientów bibliotek wsparcia, których wersja jest> = 26.0.0:

Przestroga : począwszy od wersji biblioteki pomocy technicznej 26.0.0 (lipiec 2017), minimalny obsługiwany poziom interfejsu API w większości bibliotek wsparcia wzrósł do systemu Android 4.0 (poziom interfejsu API 14) dla większości pakietów bibliotek.

Na przykład pakiet support-v4 i support-v7 obsługują minimalny poziom interfejsu API 14 dla wydań biblioteki wsparcia od 26.0.0 i nowszych .

Aby uzyskać więcej informacji, zobacz Biblioteka obsługi - obsługa wersji i nazwy pakietów .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.