Czytam o bibliotece pokojowej Androida. Widzę, że zmienili pakiet android
na androidx
. Nie zrozumiałem tego. Czy ktoś może wyjaśnić?
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Nawet to jest dostępne android
również w pakiecie.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
- Czemu potrzebowaliśmy
androidx
zamiast tego pakować nowe biblioteki wsparciaandroid
? - Przypadek użycia i czynniki wpływające na istniejące projekty.
androidx.*
to hierarchia pakietów dla bibliotek pomocniczych. Wszystkie otrzymają ten sam pakiet, co my w erzeandroidx
(jak komponenty architektury, inne biblioteki wsparcia).androidx
pakiet z COREandroid
.Odpowiedzi:
AndroidX - biblioteka rozszerzeń Androida
Z dokumentacji AndroidX
Potrzebujesz AndroidaX
AndroidX to przeprojektowana biblioteka, dzięki której nazwy pakietów są bardziej przejrzyste. Więc od teraz android hierarchii będzie tylko dla android klas domyślnych, który jest wyposażony w system operacyjny Android i inne biblioteki / Zależności będzie częścią androidx (większy sens). Odtąd wszystkie nowe opracowania będą aktualizowane w Androidzie.
com.android.support. **: androidx. com.android.support:appcompat-v7
: androidx.appcompat: appcompat com.android.support:recyclerview-v7: androidx.recyclerview : recyclinglerview com.android.support:design : com.google.android.material: materiał
Kompletne mapowania artefaktów dla pakietów AndroidX
AndroidX używa wersji semantycznej
Wcześniej
support library
używano wersji SDK, ale AndroidX używaSemantic-version
. Będzie ponownie wersji z 28.0.0 → 1.0.0.Jak przeprowadzić migrację bieżącego projektu
W Android Studio 3.2 (wrzesień 2018 r.) Istnieje bezpośrednia opcja migracji do istniejącego projektu
AndroidX
. To automatycznie refaktoryzuje wszystkie paczki.Przed migracją zdecydowanie zaleca się wykonanie kopii zapasowej projektu.
Umieść te flagi w swoim
gradle.properties
Sprawdź mapowania @ Library pod kątem równego pakietu AndroidX .
Sprawdź @ Oficjalna strona Migracji do AndroidaX
Co to jest Jetifier?
Błędy migracji
Wsparcie 28.0.0 to ostatnia wersja?
Od Androida Wsparcie Wersja 28.0.0
Więc idź z AndroidX, ponieważ Android zaktualizuje teraz tylko pakiet Androidx.
Dalsza lektura
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
źródło
enableJetifier=false
jest wartością domyślną. Jest to fałsz, jeśli go nie ustawisz. Oznacza to, że żadna z twoich bibliotek nie zostanie ponownie zapisana w systemie AndroidX.Migrate to AndroidX
Na podstawie dokumentacji :
Przeprojektowana struktura pakietu ma zachęcać mniejsze i bardziej ukierunkowane biblioteki. Szczegółowe informacje na temat mapowania artefaktów znajdują się tutaj .
Istnieją biblioteki pomocnicze (zawierające komponent i pakiety dla kompatybilności wstecznej) o nazwie „v7”, gdy minimalny obsługiwany poziom zestawu SDK wynosi 14, nowe nazewnictwo wyjaśnia zrozumienie podziału między interfejsami API dołączonymi do platformy i bibliotek dla programistów aplikacji, które są używane na różnych wersjach Androida. Więcej informacji można znaleźć w oficjalnym ogłoszeniu .
źródło
AndroidX to projekt typu open source, którego zespół Android używa do opracowywania, testowania, pakowania, wersji i wydawania bibliotek w Jetpack .
AndroidX to znaczna poprawa oryginalnej biblioteki wsparcia Androida . Podobnie jak Biblioteka pomocy, system AndroidX jest dostarczany oddzielnie od systemu operacyjnego Android i zapewnia zgodność wsteczną we wszystkich wersjach Androida. AndroidX całkowicie zastępuje bibliotekę pomocy, zapewniając parzystość funkcji i nowe biblioteki.
Wszystkie pakiety w systemie AndroidX działają w spójnej przestrzeni nazw, zaczynając od ciągu androidx. Pakiety biblioteki wsparcia zostały zamapowane na odpowiednie pakiety systemu Androidx. *. Aby uzyskać pełne mapowanie wszystkich starych klas i budowanie artefaktów na nowe, zobacz stronę Refaktoryzacja pakietów.
W przeciwieństwie do Biblioteki wsparcia, pakiety AndroidX są oddzielnie utrzymywane i aktualizowane. Pakiety Androidx używają ścisłej
Semantic Versioning
wersji począwszy od wersji 1.0.0. Możesz aktualizować biblioteki AndroidX w swoim projekcie niezależnie.Wszystkie nowe opracowania biblioteki wsparcia będą się odbywać w bibliotece AndroidX. Obejmuje to konserwację oryginalnych artefaktów biblioteki pomocy technicznej i wprowadzenie nowych komponentów Jetpack.
Korzystanie z AndroidX
Zobacz Migracja do systemu AndroidX, aby dowiedzieć się, jak przeprowadzić migrację istniejącego projektu.
Jeśli chcesz używać systemu AndroidX w nowym projekcie, musisz ustawić zestaw SDK kompilacji na Android 9.0 (poziom API 28) lub wyższy i ustawić obie następujące flagi wtyczek Android Gradle na true w swoim
gradle.properties
pliku.android.useAndroidX
: Po ustawieniu wartości true wtyczka Androida używa odpowiedniej biblioteki AndroidX zamiast biblioteki pomocy technicznej. Flaga jest domyślnie fałszywa, jeśli nie jest określona.android.enableJetifier
: Po ustawieniu wartości true wtyczka systemu Android automatycznie migruje istniejące biblioteki innych firm w celu korzystania z systemu AndroidX, przepisując ich pliki binarne. Flaga jest domyślnie fałszywa, jeśli nie jest określona.Dla artefakty mapowania zobaczyć ten
źródło
Ten artykuł Android Jetpack: Co oznaczają ostatnie ogłoszenia dla biblioteki wsparcia Androida? dobrze to wyjaśnia
źródło
Tylko kilka dodatków z mojej strony do wszystkich dostępnych odpowiedzi
Potrzebujesz AndroidaX
Przy obecnej konwencji nazewnictwa nie jest jasne, które pakiety są dołączone do systemu operacyjnego Android , a które są dołączone do aplikacji APK ( Android Package Kit ). Aby rozwiązać ten problem, wszystkie rozpakowane biblioteki zostaną przeniesione do przestrzeni nazw systemu AndroidX. * Systemu AndroidX. *, Podczas gdy hierarchia pakietów systemu Android. * Zostanie zarezerwowana dla pakietów dostarczanych z systemem operacyjnym Android.
Inne niż to,
Początkowo nazwa każdego pakietu wskazywała minimalny poziom API obsługiwany przez ten pakiet, na przykład support-v4 . Jednak wersja 26.0.0 biblioteki wsparcia zwiększyła minimalny interfejs API do 14 , więc dziś wiele nazw pakietów nie ma nic wspólnego z minimalnym obsługiwanym poziomem interfejsu API. Gdy oba pakiety support-v4 i support-v7 mają minimum API 14, łatwo jest zrozumieć, dlaczego ludzie się mylą! Tak więc teraz w systemie AndroidX nie ma zależności od poziomu interfejsu API.
Kolejną ważną zmianą jest to, że artefakty AndroidX będą się aktualizować niezależnie, dzięki czemu będziesz mógł aktualizować poszczególne biblioteki AndroidX w swoim projekcie, zamiast zmieniać wszystkie zależności jednocześnie. Te frustrujące komunikaty „ Wszystkie biblioteki com.android.support muszą używać dokładnie tej samej specyfikacji wersji ” powinny odejść w przeszłość!
źródło
Dowiedziałem się o AndroidX z tego wideo na Android Dev Summit . Podsumowanie to -
źródło
Jest to to samo, co wersje wsparcia AppCompat, ale ma mniej bałaganu w wersjach v4 i v7, więc jest to bardzo pomocne w korzystaniu z różnych składników elementów XML Androida.
źródło
androidx
zastąpisupport library
po28.0.0
. Powinieneś migrować swój projekt, aby go użyć.androidx
wykorzystujeSemantic Versioning
. UżywanieAndroidX
nie będzie mylone z wersją przedstawioną w nazwie biblioteki i nazwie pakietu. Życie staje się łatwiejsze[AndroidX i kompatybilność z obsługą]
źródło
AndroidX to projekt typu open source, którego zespół Android używa do opracowywania, testowania, pakowania, wersji i wydawania bibliotek w Jetpack.
Po wielu godzinach walki rozwiązałem go, dołączając następujące elementy do app / build.gradle:
Umieść te flagi w gradle.properties
Podczas migracji w Android Studio plik aplikacji / oceny jest automatycznie aktualizowany przy użyciu implementacji biblioteki poprawek ze standardowej biblioteki
Zobacz: https://developer.android.com/jetpack/androidx/migrate
źródło
Android zapewnia kilka różnych zestawów bibliotek. Jeden nazywa się biblioteką obsługi Androida, a drugi nazywa się AndroidX. Wybranie opcji „Użyj Androida. * Artefakty” oznacza, że chcemy używać systemu AndroidX.
źródło