Biblioteka pomocy

Uwaga: w wersji Androida 9.0 (poziom interfejsu API 28) udostępniamy nową wersję biblioteki pomocy o nazwie AndroidX, która jest częścią usługi Jetpack. Biblioteka AndroidX zawiera istniejącą bibliotekę pomocy i najnowsze komponenty Jetpack.

Możesz nadal korzystać z biblioteki pomocy. Historyczne artefakty (w wersji 27 i starszych i spakowane jako android.support.*) pozostaną dostępne w Google Maven. Wszystkie nowe projekty będą jednak odbywać się w bibliotece AndroidX.

Zalecamy używanie bibliotek AndroidX we wszystkich nowych projektach. Rozważ też migrację istniejących projektów na AndroidaX.

Tworząc aplikacje, które obsługują wiele wersji interfejsów API, możesz potrzebować standardowego sposobu udostępniania nowszych funkcji w starszych wersjach Androida lub płynnego powrotu do zgodnych funkcji. Zamiast tworzyć kod do obsługi wcześniejszych wersji platformy, możesz wykorzystać te biblioteki do zapewnienia odpowiedniej warstwy zgodności. Dodatkowo biblioteki pomocy udostępniają dodatkowe klasy i funkcje zapewniające wygodę, niedostępne w standardowym interfejsie Framework API, które ułatwiają programowanie i obsługę na większej liczbie urządzeń.

Pierwotnie była to pojedyncza biblioteka binarna dla aplikacji, a obecnie biblioteka pomocy Androida – pakiet bibliotek do tworzenia aplikacji. Wiele z tych bibliotek jest obecnie zdecydowanie zalecane, a nawet niezbędne, jako część procesu tworzenia aplikacji.

Ten dokument zawiera przegląd biblioteki pomocy. Dzięki niemu możesz poznać jej komponenty i dowiedzieć się, jak skutecznie z niej korzystać w swojej aplikacji.

Uwaga: od wersji 26.0.0 Biblioteki pomocy (lipiec 2017 r.) minimalny obsługiwany poziom interfejsu API w większości bibliotek pomocy wzrósł do Androida 4.0 (poziom API 14) w przypadku większości pakietów bibliotek. Więcej informacji znajdziesz w sekcji Obsługa wersji i nazwy pakietów na tej stronie.

Zastosowania bibliotek pomocy

Biblioteki pomocnicze mają kilka różnych zastosowań. Klasy zgodności wstecznej dla wcześniejszych wersji platformy to tylko jedna z nich. Oto pełniejsza lista sposobów korzystania z bibliotek pomocniczych w aplikacji:

  • Zgodność wsteczna dla nowszych interfejsów API – wiele bibliotek pomocy zapewnia zgodność wsteczną z nowszymi klasami i metodami platformy. Na przykład klasa pomocy Fragment zapewnia obsługę fragmentów na urządzeniach z Androidem w wersji starszej niż 3.0 (poziom interfejsu API 11).
  • Klasy pomocne i pomocnicze – biblioteki pomocy udostępniają wiele klas pomocniczych, szczególnie do tworzenia interfejsu użytkownika. Na przykład klasa RecyclerView udostępnia widżet interfejsu do wyświetlania bardzo długich list i zarządzania nimi. Można go używać w wersjach Androida od poziomu API 7 i nowszych.
  • Debugowanie i narzędzia – jest wiele funkcji, które zapewniają narzędzia poza kodem wprowadzanym do aplikacji,w tym biblioteka support-annotations do ulepszonego sprawdzania lintowania kodu danych wejściowych metod oraz obsługa Multidex do konfigurowania i dystrybucji aplikacji za pomocą ponad 65 536 metod.

Korzystanie z interfejsów API usługi Support a interfejsu Framework Framework API

Biblioteki pomocy udostępniają klasy i metody, które bardzo przypominają interfejsy API w Android Framework. Po wykryciu tych informacji możesz się zastanawiać, czy lepiej użyć platformy interfejsu API, czy odpowiednika biblioteki pomocy. Oto wskazówki, kiedy należy używać klas biblioteki pomocy zamiast interfejsów Framework API:

  • Zgodność konkretnej funkcji – jeśli chcesz obsługiwać najnowszą funkcję platformy na urządzeniach, na których działają wcześniejsze wersje platformy, użyj równoważnych klas i metod z biblioteki pomocy.
  • Zgodność powiązanych funkcji biblioteki – bardziej zaawansowane klasy biblioteki pomocy mogą zależeć od co najmniej 1 dodatkowej klasy biblioteki pomocy, dlatego w przypadku tych zależności należy używać klas biblioteki pomocy. Na przykład klasa pomocy ViewPager powinna być używana z klasami pomocy FragmentPagerAdapter lub FragmentStatePagerAdapter.
  • Ogólna zgodność urządzeń – jeśli nie masz określonej funkcji platformy, której zamierzasz używać w aplikacji w sposób zgodny wstecznie, warto użyć w aplikacji klas biblioteki pomocy. Możesz na przykład użyć ActivityCompat zamiast klasy Activity platformy, aby później korzystać z nowszych funkcji, takich jak nowy model uprawnień wprowadzony w Androidzie 6.0 (interfejs API na poziomie 2.0).

Klasy biblioteki pomocy, które oferują zgodną implementację klas interfejsu API platformy, mogą nie zapewniać pełnego zestawu funkcji dostępnych w najnowszej wersji z powodu ograniczeń wersji platformy urządzenia hosta. W takich przypadkach klasy Biblioteki pomocy są zaprojektowane w taki sposób, aby płynnie się zmniejszać i mogą nie udostępniać wszystkich funkcji lub danych obecnego interfejsu API platformy. Dlatego zapoznaj się z dokumentacją klas i metod biblioteki, z których korzystasz, i przeprowadź szczegółowe testy na urządzeniach, na których działa najstarsza wersja platformy obsługiwanej przez Twoją aplikację.

Uwaga: biblioteki pomocy nie udostępniają równoważnych klas ani metod w przypadku każdego interfejsu API platformy. W niektórych przypadkach musisz dodać do wywołania metody platformy jawną kontrolę wersji pakietu SDK i podać alternatywny kod do obsługi metod niedostępnych na urządzeniu. Więcej informacji o używaniu sprawdzania wersji kodu znajdziesz w artykule na temat obsługi różnych wersji platformy.

Obsługa wersji i nazwy pakietów

Niektóre pakiety Biblioteki pomocy mają nazwy pakietów wskazujące minimalny poziom interfejsu API, który pierwotnie był obsługiwany. Użyj do tego notacji v#, na przykład pakietu support-v4. W Bibliotece pomocy w wersji 26.0.0 (opublikowanej w lipcu 2017 r.) minimalny obsługiwany poziom interfejsu API został zmieniony w przypadku wszystkich pakietów bibliotek pomocy na Androida 4.0 (poziom API 14). Dlatego podczas pracy z najnowszymi wersjami biblioteki pomocy nie należy zakładać, że zapis pakietu v# wskazuje minimalny poziom obsługi interfejsu API. Ta zmiana w ostatnich wersjach oznacza również, że pakiety bibliotek w wersjach 4 i 7 są zasadniczo równoważne pod względem minimalnego poziomu interfejsu API, który obsługuje. Na przykład pakiet support-v4 i support-v7 obsługują minimalny poziom interfejsu API 14 w przypadku wersji Biblioteki pomocy z wersji 26.0.0 i wyższych.

Wersje biblioteki pomocy

Wersja do publikacji Biblioteki pomocy (np. 24.2.0 lub 25.0.1) różni się od minimalnego poziomu interfejsu API obsługiwanego przez dowolną bibliotekę w danej wersji. Numer wersji wskazuje, na jakiej wersji interfejsu API platformy została ona utworzona i jakie najnowsze interfejsy API mogą zostać zawarte w tej wersji bibliotek.

W szczególności pierwsza sekcja numeru wersji, na przykład numer 24 w wersji 24.2.0, zazwyczaj odpowiada wersji interfejsu API platformy, która była dostępna w momencie jego opublikowania. Poziom wersji produkcyjnej biblioteki pomocy wskazuje, że zawiera ona niektóre funkcje tego poziomu interfejsu API, ale nie należy zakładać, że zapewnia ona zgodność ze wszystkimi funkcjami dostępnymi w nowej wersji interfejsu API platformy.

Zależności dotyczące bibliotek

Większość bibliotek z pakietu Android Support Library w pewnym stopniu zależy od co najmniej jednej biblioteki. Na przykład prawie wszystkie biblioteki pomocy zależą od pakietu support-compat. Ogólnie nie musisz martwić się o zależności z bibliotekami pomocniczymi, ponieważ narzędzie do kompilacji Gradle zarządza za Ciebie zależnościami bibliotek, automatycznie uwzględniając biblioteki zależne.

Jeśli chcesz sprawdzić, jakie biblioteki i zależności między bibliotekami występują w Twojej aplikacji, uruchom to polecenie w głównym katalogu kompilacji projektu, aby uzyskać raport o zależnościach w tym projekcie, w tym bibliotekach pomocy technicznej Androida i innych bibliotek:

gradle -q dependencies your-app-project:dependencies

Więcej informacji o dodawaniu bibliotek pomocy do projektu programisty za pomocą Gradle znajdziesz w artykule o konfigurowaniu biblioteki pomocy. Więcej informacji o pracy z Gradle znajdziesz w artykule o konfigurowaniu kompilacji.

Pamiętaj, że wszystkie biblioteki pomocy Androida korzystają też z jakiegoś podstawowego poziomu platformy – w przypadku najnowszych wersji, czyli Androida 4.0 (poziom interfejsu API 14) lub nowszego.