15 stycznia 2019 r.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-beta02.  Ta wersja zawiera poprawki błędów.
Poprawki błędów
- Naprawiono przypadek skrajny, w którym okresowa praca mogła być wykonywana więcej niż raz w danym przedziale czasu na urządzeniach z Androidem 6.0 (poziom interfejsu API 23). b/121998363
- Naprawiono błąd ConcurrentModificationExceptionna urządzeniach z Androidem 5.1 (interfejs API) poziomu 22) lub niższym. b/121345393
- Naprawiono błędne wykonywanie pracy, gdy na urządzeniach nie były spełnione ograniczenia z Androidem 5.1 (poziom interfejsu API 22) lub niższym. b/122578012
- Zoptymalizowano obsługę ukończenia pracy w celu skrócenia w niektórych przypadkach skrajnych. b/122358129
- Dodaliśmy zmianę odnoszącą się do potencjalnych warunków wyścigu w wielu instancjach
z LiveDataużywanych przez WorkManager.
- Przeniesiono, aby używać zależności Room1.1.1zamiast1.1.1-rc01; ich są identyczne. b/122578011
19 grudnia 2018 r.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-beta01.  Ta wersja nie zawiera żadnych zmian interfejsu API. od tej pory WorkManager powinien zachować stabilny interfejs API do następnej wersji, chyba że wystąpi problem krytyczny.  Ta wersja zawiera poprawki błędów.
Poprawki błędów
- Anulowane wcześniej elementy podrzędne dla pomyślnie ukończonego zadania nadrzędnego nie będą już działać. b/120811767
- Prawidłowo zainicjowane klasy logowania (wyświetlane głównie podczas testów).
18 grudnia 2018 r.
Nawigacja
Nawigacja 1.0.0-alpha09 została zwolniona.  Ta wersja zawiera zmiany w interfejsie API powodujące niezgodność;
zapoznaj się z sekcją Zmiany powodujące niezgodność poniżej.
Postanowiliśmy nie kontynuować rozwoju
android.arch.navigation:navigation-testing artefakt. Co potwierdzono,
przydatne do wewnętrznych testów aplikacji NavController, zdecydowanie zalecamy
alternatywne strategie testowania, takie jak naśmiewanie się z instancji NavController.
aby sprawdzić, czy wykonywane są prawidłowe wywołania navigate(). Ten
jest szczegółowo omówione
Prezentacja na temat pojedynczej aktywności na AndroidDevSummit 2018
będziemy opracowywać dodatkową dokumentację dotyczącą testowania
dzięki Nawigacji.
Nowe funkcje
- Elementy MenuItemz:menuCategory="secondary"nie będą już cofnięte. stos w przypadku użycia z metodamiNavigationUI. b/120104424
- AppBarConfigurationumożliwia teraz ustawienie kreacji zastępczej- OnNavigateUpListener. instancja, która zostanie wywołana po zwróceniu- navController.navigateUp()- false. b/79993862 b/120690961
Zmiany najważniejsze
- Gdy używasz: <argument>i elementuargType="reference", Nawigacja nie jest już dostępna analizuje odwołanie, zamiast podawać sam identyfikator surowego zasobu. b/111736515
- onNavDestinationSelected()domyślnie powraca do miejsca docelowego wykresu nawigacji. co jest spójne z metodami- setup. Dodaj- menuCategory="secondary"do Twojego urządzenia- MenuItem, aby uniknąć problemów z tylnym stosem. Aosp/852869
- Metody fromBundle()wygenerowanych klasArgsmają teraz wartość inną niż nullBundlezamiastBundledo wartości null Aosp/845616
Poprawki błędów
- Argumenty są teraz prawidłowo interpretowane z precyzyjnych linków jako prawidłowe argType. zamiast zawsze jako ciągi b/110273284
- Nawigacja prawidłowo eksportuje teraz swoje zasoby publiczne b/121059552
- Bezpieczne argumenty są teraz zgodne z wtyczką Androida do obsługi Gradle w wersji 3.4 Canary 4 lub nowszej b/119662045
12 grudnia 2018 r.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-alpha13.  Ta wersja zawiera niewielką zmianę interfejsu API, która będzie przydatna dla niektórych użytkowników Kotlin.
Zmiany interfejsu API
- Element androidx.work.Resultzostał przeniesiony do klasy wewnętrznejListenableWorker. Zapobiega to konfliktom refaktoryzacyjnym z klasąResultnajwyższego poziomu Kotlin. Ta zmiana interfejsu API jest niezbędna. b/120564418
Zmiana w interfejsie API
- Element androidx.work.Resultzostał przeniesiony do klasy wewnętrznejListenableWorker.
6 grudnia 2018 r.
Strona
Strona 2.1.0-rc01 została zwolniona bez zmian od 2.1.0-beta01.
Nawigacja
Nawigacja 1.0.0-alpha08 została zwolniona.  Ta wersja zawiera zmiany w interfejsie API powodujące niezgodność;
zapoznaj się z sekcją Zmiany powodujące niezgodność poniżej.
Nowe funkcje
- Etykiety miejsc docelowych używane z metodami NavigationUIbędą od teraz automatycznie zastąp{argName}instancji w kolumnieandroid:labelprawidłowym argumentem b/80267266
- Nawigacja korzysta teraz z Biblioteki pomocy w wersji 28.0.0 b/120293333
Zmiany najważniejsze
- Zmiana nazwy użytkownika z OnNavigatedListenernaOnDestinationChangedListenerb/118670572
- Funkcja OnDestinationChangedListenerprzekazuje teraz równieżBundleargumentów Aosp/837142
- Atrybuty app:clearTaskiapp:launchDocumentoraz powiązane z nimi atrybuty Liczba usuniętych metod: . Użyj funkcjiapp:popUpTojako pierwiastka wykresu, aby: usuń wszystkie miejsca docelowe ze stosu wstecznego. b/119628354
- ActivityNavigator.Extrasużywa teraz wzorca- Builderi dodaje możliwość ustaw dowolne flagi:- Intent.FLAG_ACTIVITY_Aosp/828140
- Zmiana nazwy użytkownika z NavController.onHandleDeepLinknahandleDeepLinkAosp/836063
- Wiele klas i metod, które nie są przeznaczone do podklasyfikacji, na przykład
NavOptions,NavInflater,NavDeepLinkBuilderiAppBarConfiguration, zostałyfinalAosp/835681
- Wycofana metoda NavHostFragment.setGraph()została usunięta Aosp/835684
- Wycofana metoda NavigationUI.navigateUp(DrawerLayout, NavController)został usunięty. Aosp/835684
- Tworzenie fragmentów zostało przeniesione do FragmentNavigator, co ułatwia tworzenie przekazać tworzenie fragmentu doFragmentFactory. b/119054429
- Konstruktor dla NavGraphNavigatornie wymaga jużContextAosp/835340
- NavigatorProvider to teraz
za pomocą klasy, a nie interfejsu. Wartość NavigatorProviderzwrócona przezgetNavigatorProvider(). nie zmieniła swojego działania. Aosp/830660
- NavDestination.navigate()został(a) usunięty(a). Zadzwoń do firmy- navigate()na- Navigator. Aosp/830663
- Znaczna refaktoryzacja tekstu Navigatoreliminująca potrzebę użyciaOnNavigatorNavigatedListeneri zamiast tego funkcjanavigatezwróciła przekierowany do niej elementNavDestination.
- Instancje Navigatornie mogą już wysyłać zdarzeń pop doNavController. Rozważ za pomocąOnBackPressedCallbackdo przechwytywać naciśnięcia przycisku wstecz i wywołaćnavController.popBackStack(). Aosp/833716
Poprawki błędów
- popUpTodziała teraz konsekwentnie, gdy miejsce docelowe jest elementem- <navigation>b/116831650
- Naprawiliśmy kilka błędów, które powodowały wyświetlanie się komunikatu o błędzie IllegalArgumentException. w przypadku korzystania z wykresów zagnieżdżonych b/118713731 b/113611083 b/113346925 b/113305559
- Uzupełniony zostanie atrybut dataPattern<activity>miejsc docelowych argumentów z argumentów niebędących ciągiem znaków, wywołując funkcjętoString()b/120161365
Bezpieczne argumenty
- Bezpieczne argumenty obsługują obiekty możliwe do szeregowania, w tym wartości typu Enum. Typy typów wyliczeniowych
może ustawić wartość domyślną przy użyciu literału wyliczeniowego bez nazwy klasy
(np. app:defaultValue="READ") b/111316353
- Bezpieczne argumenty obsługują tablice wszystkich obsługiwanych typów b/111487504
- Bezpieczne argumenty ignoruje teraz podfoldery katalogów zasobów b/117893516
- Bezpieczne argumenty dodają adnotacje @Overridetam, gdzie jest to potrzebne b/117145301
5 grudnia 2018 r.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-alpha12.  Ta wersja zawiera zmiany w interfejsie API powodujące niezgodność; zapoznaj się poniżej z sekcją Zmiana znaczenia zmian w interfejsie API.  Prawdopodobnie udostępnimy tę wersję jako pierwszą wersję beta.  alpha12 zawiera też obszerne aktualizacje dokumentacji.
Zmiany interfejsu API
- Nowy artefakt, work-rxjava2, przedstawiaRxWorker. To jest zasób typuListenableWorker, który oczekuje na właściwośćSingle<Payload>.
- W związku z nadchodzącym wycofaniem usługi Firebase JobDispatcher wycofaliśmy jej obsługę.  Oznacza to, że artefakt work-firebasenie będzie już aktualizowany w momencie przejścia na wersję beta. Planujemy dodać w przyszłości alternatywną wersję.
- Łącznie PayloadwResult.Resultjest teraz „zapieczętą klasą” dzięki 3 konkretnym wdrożeniom, które możesz uzyskać za pomocąResult.success()(lubResult.success(Data)),Result.failure()(alboResult.failure(Data)) iResult.retry().ListenableFuturema teraz wynikResultzamiastPayload. Elementy typuWorkernie mają metod pobierania ani metod ustawiania danych wyjściowych dla danych wyjściowychData. To niezwykła zmiana.
- Dodano Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)iConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)oraz warianty, aby lepiej obsługiwać identyfikatory URI treści wyzwalających wolno wyzwalanie. b/119919774
- Dodano WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)wariant. Ta metoda wymaga interfejsu API 26.
- Dodano metody rozszerzeń Operation.await()iListenableFuture.await()Kotlin.
- Nazwa Operation.getException()została zmieniona naOperation.getThrowable(). To niezwykła zmiana.
- Klasa i metody odwołujące się do obiektu ContentUriTriggersnie są już dostępne do użytku publicznego. To niezwykła zmiana.
- Usunęliśmy pozostałe metody varargs w WorkManager,WorkContinuationiOneTimeWorkRequest, aby usprawnić interfejs API. Aby rozwiązać problemy z kompilacją, możesz dodać do istniejących zmiennych znacznikiArrays.asList(...). Nadal jednak uwzględniamy wersje z pojedynczym argumentem dla każdej metody. To niezwykła zmiana.
- Usunięto WorkContinuation.combine(OneTimeWorkRequest, *)wariantu. przedstawiał mylący interfejs API; metodycombinesą bardziej zrozumiałe. To niezwykła zmiana.
Poprawki błędów
- Implementacje sprzed wersji przedpremierowej z większą niezawodnością są teraz bardziej niezawodne, jeśli chodzi o odzyskiwanie stanu trwającego już procesu.
- Pole LiveDatazaobserwowane w usłudzeobserveForeverjest śledzone przez WorkManagera. To jest backend poprawki z biblioteki pokoi. b/74477406
- Data.Builder.build()zgłasza teraz wyjątek, jeśli zserializowany obiekt przekracza maksymalny rozmiar. Wcześniej działo się to tylko w wątku w tle, w którym nie było można prawidłowo go obsłużyć.
- Rozróżnianie zadań zatrzymanych i anulowanych; getWorkInfoById()zwróci wartośćWorkInfozCANCELLEDStatew okresieListenableWorker.onStopped().
- Traktuj nullResultjako błędy w procesieListenableWorker. b/120362353
- Poprawka spekulacyjna dotycząca tabletów Shield z interfejsem API 24, który czasami zwracał błąd IllegalArgumentException. b/119484416
Zmiana w interfejsie API
- W związku z nadchodzącym wycofaniem usługi Firebase JobDispatcher wycofaliśmy jej obsługę.  Oznacza to, że artefakt work-firebasenie będzie już aktualizowany w momencie przejścia na wersję beta. Planujemy dodać w przyszłości alternatywną wersję.
- Łącznie PayloadwResult.Resultjest teraz „zapieczętą klasą” dzięki 3 konkretnym wdrożeniom, które możesz uzyskać za pomocąResult.success()(lubResult.success(Data)),Result.failure()(alboResult.failure(Data)) iResult.retry().ListenableFuturema teraz wynikResultzamiastPayload. Elementy typuWorkernie mają metod pobierania ani metod ustawiania danych wyjściowych dla danych wyjściowychData.
- Dodano metody rozszerzeń Operation.await()iListenableFuture.await()Kotlin.
- Nazwa Operation.getException()została zmieniona naOperation.getThrowable().
- Klasa i metody odwołujące się do obiektu ContentUriTriggersnie są już dostępne do użytku publicznego.
- Usunęliśmy pozostałe metody varargs w WorkManager,WorkContinuationiOneTimeWorkRequest, aby usprawnić interfejs API. Aby rozwiązać problemy z kompilacją, możesz dodać do istniejących zmiennych znacznikiArrays.asList(...). Nadal jednak uwzględniamy wersje z pojedynczym argumentem dla każdej metody.
- Usunięto WorkContinuation.combine(OneTimeWorkRequest, *)wariantu. przedstawiał mylący interfejs API; metodycombinesą bardziej zrozumiałe.
4 grudnia 2018 r.
Room
Zostaje zwolniona sala 2.1.0-alpha03 z obsługą połączeń i kilkoma poprawkami błędów.
Zmiany interfejsu API
- Element FTS tokenizerw języku@Fts3/@Fts4przyjmuje teraz ciąg znaków, a nie enum. Dzięki temu Sala może korzystać z niestandardowych tokenizerów. Wbudowane tokenery są nadal zdefiniowane wFtsOptionsjako stałe ciągi znaków. b/119234881
Nowe funkcje
- Sytuacje: metody DAO mogą teraz być zawieszanymi funkcjami. Aby obsługiwać funkcje zawieszania w pokoju, opublikowaliśmy nowy artefakt room-coroutines. b/69474692
- Metody DAO z adnotacjami @Insert,@Deletelub@Updateobsługują terazListenableFuturejako zwracany typ. b/119418331
Poprawki błędów
- Naprawiono błąd polegający na tym, że usługa Room nieprawidłowo próbowała znaleźć konstruktor z kolumnami we właściwości ignoredColumnswłaściwości@Entity. b/119830714
- Naprawiono błąd, który powodował, że usługa Room nie oznaczała parametrów metody DAO jako ostatecznej podczas generowania wygenerowanej implementacji. b/118015483
- Naprawiono błąd polegający na tym, że procesor pokoju ulegał awarii podczas zgłaszania błędu w zapytaniu ze specjalnymi symbolami. b/119520136
- Naprawiono błąd, który powodował odrzucanie innych implementacji Collectionjako argumentów wyrażeniaIN. b/119884035
- Naprawiliśmy błąd, który powodował, że dane LiveData zwracane z Pokoju były usuwane po zaobserwowaniu w nieskończoność, przez co usługa nie wysyłała już nowych danych. b/74477406
- Zaktualizowano blokadę zamknięcia urządzenia RoomDatabase, aby zmniejszyć rywalizację o blokadę. b/117900450
8 listopada 2018 r.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-alpha11. Ta wersja zawiera wiele zmian, które staną się stabilnym interfejsem API od beta.
W tej wersji wprowadzono zmiany w interfejsie API, które są nieistotne. zapoznaj się poniżej z sekcją Zmiana znaczenia zmian w interfejsie API.
Zmiany interfejsu API
- work-runtime-ktxwprowadza nowe urządzenie- CoroutineWorker.
- Nazwa konta WorkStatuszostała zmieniona naWorkInfo. Nazwy wszystkich odpowiednich wariantów metodygetStatuszostały zmienione na odpowiednich wariantów (getWorkInfo). To niezwykła zmiana.
- Funkcja ListenableWorker.onStopped()nie akceptuje już argumentu logicznego wskazującego, czyWorkRequestzostał anulowany.WorkManagernie ma już tego rozróżnienia. To niezwykła zmiana.
- Nazwa pakietu androidx.work.testzostała zmieniona naandroidx.work.testing. To niezwykła zmiana.
- Konfigurujący w domenie Constraintsnie są już częścią publicznego interfejsu API. To niezwykła zmiana.
- Funkcje WorkerParameters.getTriggeredContentUris()iWorkerParameters.getTriggeredContentAuthorities()zwróciły wcześniej tablice. Teraz te metody zwracają kolekcje. To niezwykła zmiana.
- Nazwa ListenableWorker.onStartWork()została zmieniona naListenableWorker.startWork(). To niezwykła zmiana.
- Konstruktor dla WorkStatusnie jest już częścią publicznego interfejsu API. To niezwykła zmiana.
- Nazwy Configuration.getMaxJobSchedulerID()iConfiguration.getMinJobSchedulerID()zostały zmienione naConfiguration.getMinJobSchedulerId()iConfiguration.getMaxJobSchedulerId(). To niezwykła zmiana.
- Dodaliśmy wiele adnotacji @NonNulldo publicznego interfejsu API, aby poprawić jego ergonomię.
- Dodaj interfejs WorkManager.enqueueUniqueWork()API, aby dodać do kolejki unikalnychOneTimeWorkRequestbez konieczności tworzeniaWorkContinuation.
- Wszystkie warianty metod enqueueicancelwWorkManagerzwracają teraz nowy typOperation. To niezwykła zmiana.
- Żadne warianty atrybutu enqueuenie akceptują już zmiennych typuWorkRequest. To niezwykła zmiana. Zamiast tego używaj kolekcji. Aby zmodyfikować istniejący kod, możesz użyć poleceniaArrays.asList(). Zrobiliśmy to, aby zmniejszyć liczbę powierzchni i metod interfejsu API.
- Próba initializeWorkManagerwięcej niż raz na proces spowoduje teraz błądIllegalStateException. To niezwykła zmiana.
Poprawki błędów
- Elementy WorkRequest.Builderw artefaktiework-runtime-ktxużywają terazListenableWorker. Poprawiono parametr b/117666259
- Upewnij się, że następne uruchomienie instancji PeriodicWorkprzypada w przyszłości. Poprawiono parametr b/118204399
- Podczas uruchamiania aplikacji przy użyciu WorkManagera usuń potencjalne wejścia/wyjścia dysku. Poprawiono parametr b/117796731
- Napraw stan wyścigu w: WorkConstraintsTracker. Naprawiono android-workmanager/issues/56.
Zmiana w interfejsie API
- Nazwa konta WorkStatuszostała zmieniona naWorkInfo. Nazwy wszystkich odpowiednich wariantów metodygetStatuszostały zmienione na odpowiednich wariantów (getWorkInfo).
- Funkcja ListenableWorker.onStopped()nie akceptuje już argumentu logicznego wskazującego, czyWorkRequestzostał anulowany.WorkManagernie ma już tego rozróżnienia.
- Nazwa pakietu androidx.work.testzostała zmieniona naandroidx.work.testing.
- Konfigurujący w domenie Constraintsnie są już częścią publicznego interfejsu API.
- Funkcje WorkerParameters.getTriggeredContentUris()iWorkerParameters.getTriggeredContentAuthorities()zwróciły wcześniej tablice. Teraz te metody zwracają kolekcje.
- Nazwa ListenableWorker.onStartWork()została zmieniona naListenableWorker.startWork().
- Konstruktor dla WorkStatusnie jest już częścią publicznego interfejsu API.
- Nazwy Configuration.getMaxJobSchedulerID()iConfiguration.getMinJobSchedulerID()zostały zmienione naConfiguration.getMinJobSchedulerId()iConfiguration.getMaxJobSchedulerId().
- Wszystkie warianty metod enqueueicancelwWorkManagerzwracają teraz nowy typOperation.
- Żadne warianty atrybutu enqueuenie akceptują już zmiennych typuWorkRequest.
- Próba initializeWorkManagerwięcej niż raz na proces spowoduje teraz błądIllegalStateException.
1 listopada 2018 r.
Strona
Strona 2.1.0-beta01 została zwolniona bez zmian od 2.1.0-alpha01.
30 października 2018 r.
Room
Udostępniliśmy pokój 2.1.0-alpha02 z kilkoma poprawkami błędów i nową funkcją.
Nowe funkcje
- Dodano obsługę odwołań do @DatabaseVieww@Relation. b/117680932
Poprawki błędów
- Naprawiono błąd polegający na tym, że usługa Room wykonywała operację wejścia-wyjścia dysku w wątku głównym przy zasubskrybowaniu i usuwaniu za pomocą zwracanego typu Rx. b/117201279
- Naprawiono błąd, który powodował, że funkcja Room nie znalazła odpowiedniego konwertera typu dla pola w klasie encji Kotlin. b/111404868
- Naprawiono błąd, który powodował, że usługa Room generowała nieprawidłowy kod w przypadku implementacji interfejsu DAOzawierającej domyślną metodę Kotlin, która nie ma argumentów. b/117527454
- Zaktualizowano parser gramatyki SQLite w pokoju, naprawiono problem z wydajnością, który powodował długi czas kompilacji. b/117401230
29 października 2018 r.
Nawigacja
Udostępniliśmy nawigację 1.0.0-alpha07 z poprawkami błędów i zmianami w interfejsie API.
Nowe funkcje
- Nowa konfiguracja AppBarConfiguration pozwala określić, które miejsca docelowe są uważane za najwyższego poziomu miejsca docelowe. Zobacz zaktualizowaną dokumentację . b/117333663
- Możesz teraz przekazywać argumenty do początkowego miejsca docelowego grafu b/110300470
- Precyzyjne linki obsługują teraz schematy niestandardowe z kropkami, łącznikami i znakami plusa. b/112806402
Zmiany najważniejsze
- Moduł navigation-testing-ktxzostał złożony donavigation-testing artifacti nie zostanie już opublikowana.
- Artefakt navigation-testingjest teraz zależny od standardu Kotlin bibliotece. Interfejs API został zmieniony, aby był bardziej spójny z Kotlin konw., ale nadal możesz go używać do testów napisanych w Javie.
- Wykresy nawigacyjne zarejestrowane w pliku manifestu metadanych nie są już obsługiwane. b/118355937
- Akcji nie można już dołączać do elementu <activity> miejsca docelowe. Aosp/785539
Poprawki błędów
- Precyzyjne linki teraz prawidłowo analizują parametry zapytania. b/110057514
- Teraz w miejscach docelowych aktywności wszystkie animacje rozpoczynania i zamykania są stosowane w przypadku wszystkich animacji. b/117145284
- Usunięto awarię, która występowała po zmianie konfiguracji przy korzystaniu z niestandardowych ustawień Nawigatory. b/110763345
Bezpieczne argumenty
- Bezpieczne argumenty są teraz stale zależne od wtyczki Androida do obsługi Gradle w wersji 3.2.1. b/113167627
- Można teraz generować wskazówki dla zajęć wewnętrznych. b/117407555
- Naprawiono problem z generowaniem wskazówek dojazdu do tagu <include>. wykres. b/116542123
12 października 2018 r.
Strona
Udostępniamy stronę dla stron 2.1.0-alpha01 w 2 głównych wersjach – pomijaniu stron i bibliotekach rozszerzeń KTX dla każdego artefaktu. Wprowadziliśmy też kilka innych zmian w interfejsie API i poprawki błędów.
Zmiany interfejsu API
- Dodano PagedList.Config.Builder.setMaxSize()w przypadku ograniczenia liczby wczytywanych elementów w pamięci.
- Dodano aplikację androidx.paging.Config()jako alternatywę dla usługi Kotlin dla aplikacjiPagedList.Config.Builder
- Dodano aplikację androidx.paging.PagedList()jako alternatywę dla usługi Kotlin dla aplikacjiPagedList.Builder
- Dodano aplikację DataSourceFactory.toLiveData()jako alternatywę dla usługi Kotlin dla aplikacjiLivePagedListBuilder
- Dodano DataSourceFactory.toObservable()itoFlowable()jako alternatywne wersje Kotlin dla aplikacjiRxPagedListBuilder
- Dodano element AsyncPagedListDiffer.addPagedListListener()do słuchania przy zamienianiu elementu PagedList. b/111698609
- Dodano wariant PagedListAdapter.onCurrentListChanged(), który przekazuje starą i nową listę; poprzedni wariant został wycofany.
- Dodaliśmy PagedListAdapter/AsyncPagedListDiffer.submitList()warianty, które przyjmują dodatkowe wywołanie zwrotne, które jest wywoływane, jeśli wyświetli się lista stronicowana po różnicy. Pozwala to zsynchronizować zamianę PagedList z innymi aktualizacjami interfejsu. b/73781068
- Dodano PagedList.getLoadedCount(), aby poinformować Cię, ile elementów jest w pamięci. Pamiętaj, że jeśli obiekty zastępcze są wyłączone, zwracana wartość jest zawsze równa.size().
Poprawki błędów
- Usunięto warunek wyścigu podczas różnicowania w przypadku ponownego wykorzystania list. b/111591017.
- PagedList.loadAround()wysyła teraz- IndexOutOfBoundsException, gdy indeks jest nieprawidłowy. Wcześniej mógł się on zawiesić z niejasnym innym wyjątkiem.
- Rozwiązaliśmy problem, który powodował, że bardzo mały rozmiar wczytywanych elementów przy niezmienionych danych uniemożliwiał dalsze wczytywanie strony b/113122599.
11 października 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha10 z obsługą pracy asynchronicznej kontrolowanej przez programistę.  W tej wersji wprowadzono zmiany w interfejsie API, które są nieistotne. zapoznaj się poniżej z sekcją Zmiana znaczenia zmian w interfejsie API.
Przewidujemy, że WorkManager rozpocznie ostatnie fazy okresu alfa. Spodziewamy się, że interfejs API w wersji beta będzie stabilny, dlatego prosimy o przesyłanie opinii na temat narzędzia do śledzenia błędów.
Zmiany interfejsu API
- Usunięto wszystkie metody i klasy dostępne wcześniej w usłudze deprecated, a zwłaszcza domyślny konstruktorWorker. Jest to przełomowa zmiana interfejsu API.
- Nazwa NonBlockingWorkerzostała zmieniona naListenableWorker, która jest teraz odkrytą klasą publiczną i jest gotowa do użycia.- Funkcja ListenableWorkerzapewnia dostęp do jednej metody abstrakcyjnej,ListenableFuture<Payload> onStartWork(), która jest wywoływana w wątku głównym. Od Ciebie zależy, czy rozpoczniesz i przetwarzasz pracę asynchronicznie. Gdy skończysz, odpowiednio zaktualizujListenableFuture. Referencyjne implementacje komponentówListenableFutureznajdziesz w pakiecieFutureswalpha02(patrz sekcjaWorkManagerponiżej).
- Komponent Workerrozszerza zakresListenableWorkeri nadal działa tak jak wcześniej, z abstrakcyjną metodąResult doWork().
- Niektóre metody i użytkowników zostały losowo przełożone z WorkerdoListenableWorker.
- Wkrótce udostępnimy implementacje referencyjne dla systemów ListenableWorker, które korzystają z współrzędnych Kotlin (po opublikowaniu wersji stabilnych) i RxJava2.
 
- Funkcja 
- Interfejs WorkerFactoryi konkretna implementacjaDefaultWorkerFactoryzostały połączone w klasę abstrakcyjną o nazwieWorkerFactory. Implementacja daje pewność, że w przypadku każdej instancjiWorkerFactoryutworzonej przez użytkownika domyślne zachowanie oparte na odbiciach będzie nazywane „ostatnią próbą”. To niezwykła zmiana.
- Usunięto metody WorkManager.synchronous()iWorkContinuation.synchronous()oraz wszystkie powiązane metody. DodanoListenableFuture<Void>jako typ zwracany wielu metod w interfejsie API. Jest to przełomowa zmiana interfejsu API.- Teraz możesz synchronicznie pobierać i obserwować je za pomocą funkcji ListenableFuture. Na przykład hasłoWorkManager.enqueue()zostało użyte do zwrócenia wartościvoid; zwraca terazListenableFuture<Void>. Możesz wywołaćListenableFuture.addListener(Runnable, Executor)lubListenableFuture.get(), aby uruchomić kod po zakończeniu operacji.
- Pamiętaj, że te elementy typu ListenableFuturenie informują, czy operacja zakończyła się powodzeniem, czy niepowodzeniem. tylko że skończyli. Aby znaleźć te informacje, musisz połączyć metody w usłudze WorkManager.
- Pomijamy wywołania funkcji cancel()w przypadku tych obiektów, ponieważ są one mylące i trudne do przełożenia (czy anulujesz operację czy związaną z nią pracę?). Wynika to z umowyFuture.
- Aby zachować spójność z synchronicznymi metodami getStatus*, udostępniliśmy wariantyListenableFuturei zmieniliśmy nazwę tych, które zwracały wartośćLiveData, na „LiveData” jako część nazwy (na przykładgetStatusesByIdLiveData(UUID)). Jest to przełomowa zmiana w interfejsie API.
 
- Teraz możesz synchronicznie pobierać i obserwować je za pomocą funkcji 
Poprawki błędów
- Naprawiliśmy znany problem z wersji alfa09 dotyczący zduplikowanych plików androidx-annotations.pro. Możesz usunąć obejście z poprzednich informacji o wersji, usuwającexclude 'META-INF/proguard/androidx-annotations.pro'z pliku Gradle.
- Dodano konfiguracje ProGuard, aby zachować nowy konstruktor Worker. b/116296569
- Popraw potencjalne zagrożenie (NullPointerException) w wyścigu, w którym czas pracy byłREPLACEd. b/116253486 i b/116677275
- WorkContinuation.combine()akceptuje teraz co najmniej 1- WorkContinuationzamiast 2 lub więcej. b/117266752
Zmiana w interfejsie API
- Usunięto wszystkie metody i klasy dostępne wcześniej w usłudze deprecated, a zwłaszcza domyślny konstruktorWorker.
- Interfejs WorkerFactoryi konkretna implementacjaDefaultWorkerFactoryzostały połączone w klasę abstrakcyjną o nazwieWorkerFactory.
- Usunięto: WorkManager.synchronous()iWorkContinuation.synchronous().
- Metody WorkManager.getStatus*()zwracają terazListenableFuture.WorkManager.getStatus*LiveData()zwracaLiveDatas.
Transakcje terminowe
Zostaje opublikowana transakcja terminowa 1.0.0-alpha02.
Zmiany interfejsu API
- Deweloperzy mogą teraz używać ResolvableFutureiAbstractResolvableFuturejako prostych, betonowych implementacji środowiskaListenableFuture.
8 października 2018 r.
Room
Sala 2.1.0-alpha01 została zwolniona.
Nowe funkcje
- FTS: sala obsługuje teraz elementy z mapowaną tabelą FTS3 lub FTS4. Do klas z adnotacjami @Entitymożna teraz dodatkowo dodać adnotacje za pomocą@Fts3lub@Fts4, aby zadeklarować klasę przy użyciu tabeli wyszukiwania pełnotekstowego mapowania. Opcje FTS umożliwiające dalsze dostosowanie są dostępne za pomocą metod adnotacji. b/62356416
- Widoki: sala obsługuje teraz deklarowanie klasy jako zapisanego zapytania, zwanego też widokiem z użyciem adnotacji @DatabaseView. b/67033276
- Wartość automatyczna: pokój obsługuje teraz deklarowanie klas z adnotacjami Wartość automatyczna jako elementów i zamówień POJO. Adnotacje do sal @PrimaryKey,@ColumnInfo,@Embeddedi@Relationmożna teraz zadeklarować w abstrakcyjnych metodach klasy z adnotacjami z wartościami automatycznymi. Aby pokój został prawidłowo zrozumiany, do tych adnotacji należy też dołączyć atrybut@CopyAnnotations. b/62408420
- Dodatkowa obsługa typów zwrotów Rx: metody DAO oznaczone adnotacjami @Insert,@Deletelub@Updateobsługują teraz zwroty RxCompletable,Single<T>iMaybe<T>. b/63317956
- Typy stałe za pomocą funkcji @Relation: wcześniej sala wymagała możliwości skonfigurowania pól z adnotacjami@Relation, ale teraz mogą one być parametrami konstruktora.
- enableMultiInstanceInvalidation: to nowy interfejs API w wersji- RoomDatabase.Builder, który umożliwia unieważnianie wielu instancji RoomDatabase przy użyciu tego samego pliku bazy danych. Mechanizm unieważniania na wiele instancji działa też w wielu procesach. B/62334005
- fallbackToDestructiveMigrationOnDowngrade: to nowy interfejs API w- RoomDatabase.Builder, który automatycznie odtwarza bazę danych w przypadku przejścia na niższą wersję. b/110416954
- ignoredColumns: to nowy interfejs API w adnotacji- @Entity, którego można używać do wyświetlania listy ignorowanych pól według nazwy. Przydatny do ignorowania dziedziczonych pól elementu. B/63522075
Zmiany interfejsu API / działania
- mCallbacki- mDatabasew pokoju- RoomDatabaseto teraz- @Deprecatedi zostaną usunięte w następnej głównej wersji pokoju. b/76109329
Poprawki błędów
- Rozwiązaliśmy 2 problemy, które powodowały, że pokoje nie były prawidłowo przywracane z uszkodzonej bazy danych lub nieprawidłowej migracji podczas inicjowania. b/111504749 i b/111519144
- Sala będzie teraz prawidłowo używać głównego konstruktora Kotlina w klasach danych, dzięki czemu nie będzie trzeba deklarować pól jako vars. b/105769985
1 października 2018 r.
Pokój 2.0.0 został zwolniony bez zmian w pokoju 2.0.0-rc01.
Udostępniamy stronę 2.0.0 z jednym poprawką błędu.
Strona
Poprawki błędów
- Rozwiązaliśmy problem, który mógł występować przy bardzo szybkim przewijaniu przy użyciu elementów PositionalDataSourcei obiektów zastępczych b/114635383.
21 września 2018 r.
Udostępniono cykl życia 2.0.0 z 1 poprawką błędu z modelu 2.0.0-rc01 w modelu ViewModel.
Cykl życia
Poprawki błędów
- Naprawiono regułę Propagarda ViewModel, która nieprawidłowo usuwała konstruktory b/112230489
20 września 2018 r.
Nawigacja
Udostępniliśmy nawigację 1.0.0-alpha06 z poprawkami błędów i zmianami w interfejsie API.
Nowe funkcje
- Przejścia udostępnionych elementów dla fragmentów i miejsc docelowych aktywności są teraz obsługiwane b/79665225. Więcej informacji znajdziesz w artykule Implementowanie nawigacji za pomocą komponentu architektury nawigacji.
- Wybranie elementu w widoku NavigationViewspowoduje teraz zamknięcie planszy dolnej b/112158843
Zmiany interfejsu API
- Zmiana powodująca niezgodność: metoda Nawigator navigate()przyjmuje teraz parametrNavigator.Extras.
- Metoda getGraph()NavControllera to terazNonNullb/112243286
Poprawki błędów
- NavigationUI.setupWithNavController()nie ujawnia już wyświetleń, jeśli jest używany wraz z wyświetleniami z poszczególnych miejsc docelowych b/111961977
- Nawigator onSaveState()jest teraz wywoływany tylko raz b/112627079
Bezpieczne argumenty
- Klasy wskazówek dojazdu do miejsca docelowego nawigacji rozszerzają teraz klasyczną klasę wskazówek dojazdu z ich nadrzędnej klasy Directions (jeśli istnieje) b/79871405.
- Klasy wskazówek i argumentów mają teraz przydatną implementację funkcji toString()b/111843389
19 września 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha09 z poprawkami błędów, aktualizacjami infrastruktury i zmianami w interfejsie API.
Znany problem
Jeśli napotkasz ten problem: „Znaleziono więcej niż 1 plik ze ścieżką niezależną od systemu operacyjnego „META-INF/proguard/androidx-annotations.pro””, umieść ten kod w pliku Gradle jako tymczasowe obejście tego problemu i naprawimy go w wersji alfa10:
Odlotowe
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Poprawki błędów
- Dodano kolejną poprawkę niezbędną w przypadku „100 zadań” . b/115560696
- Dodaliśmy kilka poprawek błędów ograniczeń klucza obcych spowodowanych warunkami wyścigu. b/114705286
- Przekazane wywołania ConstraintTrackingWorker.onStopped(boolean)do bazowego elementuWorker. b/114125093
- Egzekwuj poprawne minimalne opóźnienie wycofywania dla Firebase JobDispatcher. b/113304626
- Ulepszone wątkowanie gwarantuje wewnętrzny dostęp do biblioteki.
- Skoryguj potencjalny problem z wewnętrznym usuwaniem duplikatów wartości LiveData.
Zmiany interfejsu API
- Możesz teraz tworzyć własne instancje Workerw czasie działania, określającWorkerFactorywWorkManager.Configuration. Fabryka kreacji zastępczej toDefaultWorkerFactory, która odpowiada działaniu poprzednich wersji WorkManagera.- Domyślne konstruktory dla WorkeriNonBlockingWorkersą teraz oznaczone jako wycofane. Użyj nowego konstruktora (Worker(Context, WorkerParameters)) i wywołajsuper(Context, WorkerParameters); w kolejnych wersjach WorkManager zostanie usunięty domyślny konstruktor.
 
- Domyślne konstruktory dla 
- Zaczęliśmy korzystać z nowego artefaktu ListenableFuturewewnętrznie (bez zależności Guava). W kolejnych wersjach dodamy do tego interfejsu API ListenableFutures. Ta zmiana umożliwi późniejsze ukrycie stronyNonBlockingWorker.
- Dodaj możliwość aktywowania zadań czasowych w TestDriverprzez funkcjeTestDriver.setInitialDelayMet(UUID)iTestDriver.setPeriodDelayMet(UUID). b/113360060
Zmiany najważniejsze
- Domyślne konstruktory WorkeriNonBlockingWorkerzostały wycofane. Jak najszybciej przejdź na nowy konstruktor. W kolejnych wersjach domyślny konstruktor zostanie usunięty.
27 sierpnia 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha08 z poprawkami błędów.
Poprawki błędów
- Komponenty WorkManager wyraźnie oznaczone jako rozruch bezpośrednie, nieświadome, dzięki czemu nie uruchamiają się podczas bezpośredniego rozruchu. W przyszłości udostępnimy wersję WorkManagera z obsługą bezpośredniego rozruchu. b/112665532
- Rozwiązaliśmy problem, który powodował, że ponawiana praca nie była wykonywana. b/112604021
- Naprawiliśmy problem z powtarzającym się okresowym wykonywaniem zadań (związane z powyższym problemem). b/112859683
- Uznawane zasady ponowienia, gdy proces aplikacji jest już uruchomiony.
- Poprawiono komunikaty o wyjątkach w pliku Data, wskazujące limit na 10 KB.
- Zmniejszono maksymalną wartość z Configuration.setMaxSchedulerLimit(int)do 50, aby uwzględnić pewne opóźnienia w zakończeniu przetwarzaniaJobScheduler. b/112817355
16 sierpnia 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha07 z poprawkami błędów i drobnymi zmianami w interfejsie API.
Poprawki błędów
- Naprawiono potencjalne zapytanie SQL z ujemnymi limitami, które mogło zwrócić nieograniczoną liczbę wyników.
- Wykonanie zadania, które zostało zakończone, powoduje teraz prawidłowe anulowanie wszystkich oczekujących kopii tej pracy w innych algorytmach szeregowania. Doprowadziło to do przekroczenia limitu JobSchedulerzadań. b/111569265
- Naprawiono ConcurrentModificationExceptionwConstraintTracker. b/112272753
- Adnotacje typu zwracania Data.getBooleanArray(String)iData.getIntArray(String)zostały zmienione na@Nullablezamiast@NonNull. b/112275229
Zmiany interfejsu API
- Rozszerzenie Workerrozszerza teraz nowe zajęcia:NonBlockingWorker. Nie będzie to miało wpływu na bieżące wykorzystanie danych. W przyszłościNonBlockingWorkerstanie się w pełni obsługiwaną encją na potrzeby rozwiązań z niestandardowymi wątkami.
- Adnotacje typu zwracania Data.getBooleanArray(String)iData.getIntArray(String)zostały zmienione na@Nullablezamiast@NonNull. b/112275229
- Rozszerzenia Kotlin: wycofaliśmy dyrektywę Map.toWorkData()i dodaliśmyworkDataOf(vararg Pair<String, Any?>)najwyższego poziomu, aby zapewnić większą spójność z istniejącymi interfejsami API.
10 sierpnia 2018 r.
Nawigacja
Udostępniliśmy nawigację 1.0.0-alpha05 z poprawkami błędów.
Poprawki błędów
- Napraw błąd, który powodował nieprawidłowe działanie stosu. b/111907708
- Napraw błąd w equals()wygenerowanych klas. b/111450897
- Napraw błąd kompilacji w bezpiecznych argumentach. b/109409713
- Popraw konwersję z identyfikatorów zasobów na nazwy Java b/111602491
- Naprawa komunikatów o błędach dotyczących dopuszczalności wartości null we wtyczce Safe Args.
- Dodaj brakujące adnotacje dotyczące wartości null.
6 sierpnia 2018 r.
Wersje Androida X cyklu życia, pokoje i strony w wersji 2.0.0-rc01. Wszystkie artefakty nie uległy zmianie od 2.0.0-beta01.
1 sierpnia 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha06 z poprawkami błędów.
Poprawki błędów
- Zapobiegaj blokadzie bazy danych podczas planowania pracy. b/111801342
- Usuń błąd, który powodował, że aplikacja PeriodicWorknie uruchamiała się zgodnie z harmonogramem w trybie uśpienia. b/111469837
- Napraw warunek wyścigu podczas śledzenia ograniczeń, które powodują awarię WorkManager. googlecodelabs/android-workmanager/issues/56.
- Przy korzystaniu z elementu WorkRequest.Builder#build()twórz unikalne elementyWorkRequest. b/111408337
- Włączaj używanie usługi RescheduleReceivertylko wtedy, gdy komponentyWorkRequestjej potrzebują. b/111765853
24 lipca 2018 r.
Menedżer roboczy
Udostępniliśmy usługę WorkManager 1.0.0-alpha05 z ważnymi poprawkami błędów i zmianami w logowaniu.
Zmiany interfejsu API
- WorkManager.getInstance()jest teraz oznaczona adnotacją- @NonNullzamiast- @Nullable. Jeśli usługa singleton nie zostanie prawidłowo zainicjowana w przypadku inicjowania ręcznego, metoda zwróci- IllegalStateException. To jest zmiana interfejsu API powodująca niezgodność.
- Dodaliśmy nowy interfejs API Configuration.Builder.setMinimumLoggingLevel(int), który może kontrolować szczegółowość WorkManagera. Domyślnie WorkManager rejestruje zasadyLog.INFOi nowsze.
- Zmieniono podpis Data.getString(), aby nie używał już wartości domyślnej (domyślnienull). Jest to przełomowa zmiana w interfejsie API.
- Niektóre metody potrzebne tylko do użytku wewnętrznego oznaczono jako @hide. Obejmuje to konstruktorConstraints,Data.toByteArray()orazData.fromByteArray(byte[]). Jest to przełomowa zmiana interfejsu API.
Poprawki błędów
- WorkManager nie wykonuje już zadań w znanych przypadkach automatycznej kopii zapasowej. Mogło to spowodować wypadek. b/110564377
- Rozwiązano podwójne harmonogramy (PeriodicWorkRequest) podczas korzystania z zasadJobScheduler. b/110798652
- Rozwiązaliśmy problem z nieprawidłowym wykonywaniem zadań PeriodicWorkRequestpo uśpieniu urządzenia. b/111469837
- Rozwiązaliśmy problem z początkowymi opóźnieniami podczas korzystania z Firebase JobDispatcher. b/111141023
- Naprawiliśmy niektóre potencjalne warunki wyścigu i problemy z czasem jego trwania.
- Prawidłowo zwolniono BroadcastReceiversekund, które nie były już potrzebne.
- Zoptymalizowana jest wydajność zmiany harmonogramu w przypadku ponownego uruchomienia aplikacji po wymuszeniu zamknięcia.
- Zezwolono na wywoływanie funkcji TestScheduler.setAllConstraintsMet(UUID)przed lub po umieszczeniu danego elementuWorkRequestw kolejce. b/111238024
Zmiany najważniejsze
- WorkManager.getInstance()jest teraz oznaczona adnotacją- @NonNullzamiast- @Nullable.
- Zmieniono podpis Data.getString(), aby nie używał już wartości domyślnej (domyślnienull).
- Niektóre metody potrzebne tylko do użytku wewnętrznego oznaczono jako @hide. Obejmuje to konstruktorConstraints,Data.toByteArray()orazData.fromByteArray(byte[]).
19 lipca 2018 r.
Nawigacja
Nawigacja 1.0.0-alpha04 i powiązana z nią wtyczka do obsługi interfejsu Safe Args wprowadziliśmy w interfejsie API i w jego działaniu oraz poprawki błędów.
Zmiany interfejsu API / działania
- NavHostFragment będzie zawsze ustawiać bieżący fragment jako główny fragment do nawigacji, dzięki czemu menedżery fragmentów podrzędnych zostaną wyskakujące przed wystrzeleniem zewnętrznego kontrolera NavController b/111345778
Bezpieczne argumenty
- Zmiana powodująca niezgodność: app:typezostała zmieniona naapp:argType, aby uniknąć konfliktów z innymi bibliotekami, takimi jak ConstraintLayout 2.0.0-alpha1 b/111110548
- Komunikaty o błędach z Bezpiecznych argumentów można teraz klikać b/111534438
- Klasy Args potwierdzają teraz, że atrybuty NonNullw rzeczywistości nie są puste b/111451769
- Adnotacje NonNullzostały dodane do klas NavDirections i generowanych argumentów b/111455455 b/111455456.
Poprawki błędów
- Rozwiązaliśmy problem z systemowym przyciskiem Wstecz po zastosowaniu precyzyjnych linków do miejsca docelowego fragmentu b/111515685
12 lipca 2018 r.
Nawigacja
Nawigacja 1.0.0-alpha03 i powiązana z nią wtyczka do obsługi interfejsu Safe Args wprowadziliśmy w interfejsie API i w jego działaniu oraz poprawki błędów.
Zmiany interfejsu API / działania
- Dodano metodę NavigationUI.setupWithNavController w przypadku paska narzędzi Toolbar b/109868820.
- Dodano metodę NavigationUI.setupWithNavController w przypadku elementu CollapsingToolbarLayout b/110887183
- popBackStack() zwraca teraz wartość false, gdy stos wsteczny jest pusty lub gdy podanego identyfikatora miejsca docelowego nie ma w stosie tylnym b/110893637
- FragmentNavigator ignoruje teraz operacje nawigacji po zapisaniu stanu przez FragmentManager, aby uniknąć wyjątków „Nie można wykonać tego działania po onSaveInstanceState” w wyjątku b/110987825
Bezpieczne argumenty
- Zmiana znaczenia: znaki inne niż alfanumeryczne w nazwach działań i argumentów zostaną zastąpione wielkimi literami w nazwach odpowiednich metod NavDirections.
- Na przykład: DemoController.indexbędziesetDemoControllerIndexb/79995048
- Na przykład: action_show_settingsbędzieactionShowSettingsb/79642240
 
- Na przykład: 
- Zmiana powodująca niezgodność: argumenty są teraz domyślnie uznawane za niepuste. Aby zezwolić na null w przypadku ciągu znaków i argumentów parcelable, dodaj app:nullable="true"b/79642307
- Możesz teraz używać parametru app:type="long"z wartościami domyślnymi w formacie „123L” b/79563966
- Obsługiwane są teraz argumenty Parcelable z pełną i jednoznaczną nazwą klasy dla funkcji app:type. Jedyna obsługiwana wartość domyślna to"@null"b/79563966
- Klasy Args implementują teraz funkcje equals()ihashCode()b/79642246
- Wtyczki Safe Args można teraz stosować do projektów bibliotek b/80036553
- Wtyczki Safe Args można teraz stosować do projektów cech b/110011752
Poprawki błędów
- Rozwiązaliśmy problemy z nawigacją podczas korzystania z metod cyklu życia fragmentów kodu b/109916080
- Rozwiązaliśmy problemy z wielokrotnym nawigacją po zagnieżdżonych wykresach b/110178671
- Rozwiązaliśmy problemy z używaniem funkcji setPopUpToz pierwszym miejscem docelowym na wykresie b/109909461
- Rozwiązaliśmy problem, który powodował, że wszystkie wartości app:defaultValuebyły przekazywane jako ciągi znaków b/110710788
- Narzędzie aapt2 w pakiecie z wtyczką Androida do obsługi Gradle 3.2 w wersji beta 01 dodaje teraz reguły zachowania reguł dla każdego atrybutu android:namew plikach XML nawigacji b/79874119
- Usunięto wyciek pamięci podczas zastępowania domyślnego fragmentu Navigator b/110900142
2 lipca 2018 r.
Wersje Androida X cyklu życia, pokoje i strony w wersji 2.0.0-beta01.
Cykl życia
Poprawki błędów
- Poprawiono regułę LifecycleObserver ProGuard, aby zachowywać tylko implementacje, a nie podinterfejsy b/71389427
- Poprawiono reguły ProGuard usługi ViewModel umożliwiające zaciemnianie i zmniejszanie
Room
Zmiany interfejsu API / działania
- Dodano RoomDatabase.Builder.setQueryExecutor(), aby umożliwić dostosowanie miejsca uruchamiania zapytań
- Dodano obsługę RxJava2 Observable
- Wygenerowane implementacje DAO i bazy danych są już gotowe
Poprawki błędów
- Określ nazwę klasy/pola w polu „nie można znaleźć metody pobierania dla pola” błąd b/73334503
- Poprawiono zgodność wsteczną RoomOpenHelper ze starszymi wersjami pokoi b/110197391.
Strona
Poprawki błędów
- Poprawione znikanie treści w niektórych przypadkach dodawanych na początku (obiekty zastępcze wyłączone, PositionalDataSource) b/80149146
- (Już opublikowana w wersji 1.0.1) Naprawiono awarie, które powodowały problemy z sygnaturą zdarzeń dotyczących ruchu wPagedListAdapteriAsyncPagedListDiffer. b/110711937
26 czerwca 2018 r.
Strona
Publikowanie stron 1.0.1 z pojedynczym błędem w runtime. Dla stabilności zdecydowanie zalecamy użycie 1.0.1. Udostępniona została również strona strona 1.0.1 w języku RxJava2, która jest taka sama jak 1.0.0-rc1.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że PagedListAdapteriAsyncPagedListDiffernie sygnalizowały zdarzeń ruchu. b/110711937
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-alpha04.
Poprawki błędów
- Gdy korzystasz z implementacji opartej na - AlarmManager, harmonogramy zdarzeń typu- PeriodicWorkRequestsą teraz prawidłowo ustawiane.
- Rozwiązaliśmy problem, który mógł wystąpić podczas zmiany harmonogramu wszystkich instancji roboczych po wymuszeniu zatrzymania lub ponownym uruchomieniu. b/110507716 
- Dodano adnotacje dotyczące wartości null do różnych interfejsów API WorkManager. b/110344065 
- Rejestruje nieobsłużone wyjątki, które występują podczas wykonywania instancji roboczej. b/109900862 
- Dozwolone niszczące migracje bazy danych na wypadek przywrócenia starszej wersji WorkManagera. b/74633270 
- Rozwiązaliśmy problem, który powodował awarię migracji przy tworzeniu zduplikowanych tagów niejawnych. To bardzo rzadki problem, który występuje tylko w przypadku samodzielnego użycia tego samego formatu tagu niejawnego. 
19 czerwca 2018 r.
Room
Sala 1.1.1 została zwolniona. Ta wersja jest taka sama jak sala 1.1.1-rc1.
Menedżer roboczy
Zwolniono usługę WorkManager 1.0.0-alpha03.
Poprawki błędów
- Naprawiono warunek wyścigu w implementacji opartej na - AlarmManager. b/80346526.
- Rozwiązaliśmy zduplikowane zadania występujące podczas korzystania z usługi - JobSchedulerpo ponownym uruchomieniu urządzenia.
- Zadania z aktywatorami identyfikatora URI treści są teraz zachowywane po ponownym uruchomieniu. b/80234744 
- Aktualizacje dokumentacji. b/109827628, b/109758949, b/80230748 
- Naprawiono błąd, który występował podczas ponownego dodawania - WorkRequestdo kolejki. b/109572353.
- Naprawiliśmy ostrzeżenia kompilatora Kotlin podczas korzystania z zależności - work-runtime-ktx.
- WorkManager używa teraz - Roomw wersji- 1.1.1-rc1.
Zmiany interfejsu API
- Dodano - getStatusesSync(), synchroniczną wersję- WorkContinuation.getStatuses().
- Workerpotrafi rozróżnić anulowanie inicjowane przez użytkownika od tymczasowego zatrzymania na żądanie systemu operacyjnego. Metoda- Worker.isStopped()zwraca wartość- true, jeśli zostanie zażądany jakikolwiek przystanek. Funkcja- Worker.isCancelled()zwraca wartość- true, gdy zadanie zostało wyraźnie anulowane. b/79632247
- Dodano obsługę JobParameters#getNetwork() w interfejsie API 28. Ta informacja jest udostępniana przez - Worker.getNetwork().
- Dodano zasadę - Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit), aby umożliwić Ci wyegzekwowanie liczby zadań, które można wysłać do usług- JobSchedulerlub- AlarmManager. Dzięki temu- WorkManagernie będzie mógł zająć wszystkich dostępnych- JobSchedulermiejsc.
- Dodano - Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId), który ułatwia zdefiniowanie zakresu identyfikatorów zadań- JobScheduler, których może używać- WorkManager. b/79996760
- Worker.getRunAttemptCount()zwraca bieżącą liczbę uruchomień dla danego- Worker. b/79716516
- WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)umożliwia dodanie unikalnych komponentów- PeriodicWorkRequestdo kolejki. b/79600647
- WorkManager.cancelAllWork()anuluje wszystkie- Worker. Biblioteki zależne od- WorkManagermogą wysyłać zapytania, gdy ta metoda została wywołana jako ostatnia, używając- WorkManager.getLastCancelAllTimeMillis()do dodatkowego czyszczenia stanu wewnętrznego.
- Dodano zadanie - WorkManager.pruneWork(), aby usunąć ukończone zadania z wewnętrznej bazy danych. b/79950952, b/109710758
Zmiany w działaniu
- Do wszystkich elementów WorkRequestdodano tag niejawny. Jest to w pełni kwalifikowana nazwa klasy obiektuWorker. Umożliwia to usuwanie elementówWorkRequest, które nie mają komponentówtaglub gdy usługaidjest niedostępna. b/109572351
Zmiany najważniejsze
- Nazwa - Worker.WorkerResultzostała zmieniona na- Worker.Result.
- Worker.onStoppedma teraz dodatkowy parametr- isCancelled, który jest ustawiony na- true, jeśli parametr- Workerzostał jednoznacznie anulowany.
7 czerwca 2018 r.
Nawigacja 1.0.0-alpha02 została zwolniona.
Nawigacja
Zmiany w działaniu
- FragmentNavigatorużywa teraz- setReorderingAllowed(true). b/109826220
- Argumenty Nawigacji URLDecodes analizowane z adresów URL precyzyjnych linków. b/79982454 
Poprawki błędów
- Poprawiliśmy - IllegalStateExceptionpodczas wywoływania nawigacji z metod cyklu życia fragmentu. b/79632233
- W przypadku migotania podczas korzystania z animacji nawigacja wymaga teraz Biblioteki pomocy 27.1.1. B/80160903 
- Naprawiono błąd - IllegalArgumentExceptionw przypadku użycia domyślnego NavHost="true". jako fragment podrzędny. b/79656847
- Naprawiono błąd - StackOverflowError, który występował podczas korzystania z NavDeepLinkBuilder. b/109653065
- Naprawiono błąd - IllegalArgumentExceptionwystępujący podczas przechodzenia z powrotem do wykresu zagnieżdżonego. b/80453447
- Naprawiono problem z pokrywającymi się fragmentami podczas korzystania z funkcji - launchSingleTop. b/79407969
- Nawigacja tworzy teraz prawidłowy syntetyczny stos wsteczny dla wykresów zagnieżdżonych. b/79734195 
- Interfejs NavigationUI wyróżni właściwy element, gdy zagnieżdżony wykres jest używany jako - MenuItem. b/109675998
Zmiany interfejsu API
- Atrybut - clearTaskdziałań i powiązany z nim interfejs API w tabeli- NavOptionszostały wycofane. b/80338878
- Atrybut - launchDocumentdziałań i powiązany z nim interfejs API w tabeli- NavOptionszostały wycofane. b/109806636
24 maja 2018 r.
Zwolniono usługę WorkManager 1.0.0-alpha02.
Menedżer roboczy
Poprawki błędów
- Naprawiono - NullPointerExceptionna- State.isFinished(). b/79550068
- Rozwiązaliśmy problem, który powodował przełożenie spotkań - Workerna- Application.onCreate(). b/79660657
- Rozwiązaliśmy problem, który powodował, że można było zaplanować więcej pracy, niż pozwala na to system operacyjny. b/79497378 
- Czyszczenie blokad uśpienia powiązanych z urządzeniami - Workerzostało przeniesione do wątku w tle.
- Implementacja - AlarmManagerjest teraz prawidłowo czyszczona po zakończeniu wszystkich oczekujących zadań.
- Naprawiono zapytania SQL czyszczenia, które wpływały na regiony inne niż angielski. B/80065360 
- Dodano obsługę komponentów - floatw pliku- Data. b/79443878
- Data.Builder.putAll()zwraca teraz wystąpienie- Builder. b/79699162
- Więcej plików javadoc i poprawek w dokumentacji. b/79691663 
Zmiany interfejsu API
- Elementy typu - Workermogą zareagować na zatrzymanie.- Worker.isStopped()może posłużyć do sprawdzenia, czy- Workerzostał zatrzymany.- Worker.onStopped()może służyć do wykonywania prostych operacji czyszczenia.
- Interfejs API - Worker.getTags()zwraca wartość- Settagów powiązanych z tabelą- Worker.
- Dodano przeciążenia ( - javax.time.Duration) dla interfejsów API, które wymagają kombinacji czasu trwania i- TimeUnit. Chroni Cię- @RequiresApi(26).
- WorkManagerrozszerzenia zostały przeniesione z pakietu- androidx.work.ktxdo pakietu- androidx.work. Stare rozszerzenia są wycofane i zostaną usunięte w przyszłej wersji.
- Interfejs - Configuration.withExecutor()został wycofany. Użyj w zamian zasady- Configuration.setExecutor().
16 maja 2018 r.
Zwolniono strony 1.0.0-rc1 w architekturze RxJava2 i pomieszczenie 1.1.1-rc1. Bardzo zależy nam
zalecamy użycie pokoju 1.1.1-rc1 zamiast 1.1.0, jeśli używasz migracji.
Room
Usunęliśmy błąd, przez który pokój nie obsługiwał prawidłowo po migracji inicjowania b/79362399
Strona
Strona rxjava2 jest przenoszona do wersji kandydującej bez zmian w stosunku do początkowej
wersji alfa.
8 maja 2018 r.
Paging 1.0, wersje alfa Navigation i WorkManager alfa, pokój 1.1, AndroidX
Zwalnianie 1.0.0 i Sala 1.1.0 zostaną zwolnione
z wersjami alfa dla dwóch nowych komponentów architektury – Navigation i WorkManager.
Od czasu wprowadzenia najnowszych wersji kandydujących wersji nie wprowadzono żadnych zmian w przypisowaniu strony i pokoju.
Nowa biblioteka: Nawigacja
Nawigacja zapewnia platformę do tworzenia w aplikacji
nawigacji. Ta początkowa wersja to 1.0.0-alpha01.
Nowa biblioteka: WorkManager
WorkManager upraszcza planowanie i wykonywanie
gwarantowana praca w tle z uwzględnieniem ograniczeń. Ta pierwsza wersja to
1.0.0-alpha01
AndroidX
Przenosimy komponenty architektury, które staną się częścią AndroidaX. Dotyczy to m.in. aktualizacji
nazwy pakietów, nazwy artefaktów i zależności od innych bibliotek AndroidaX.
Są one dostępne w wersji 2.0.0-alpha1 i używane w połączeniu z innymi
Biblioteki AndroidaX.
Rozszerzenia Kotlin
ViewModel, ReactiveStreams i Sqlite (wcześniej „Baza danych” pokoju). dodaliśmy biblioteki rozszerzeń Kotlin w ramach wersji alfa AndroidaX. W moduły Navigation i WorkManager zawierają moduły -ktx. Każda z tych opcji modułów rozszerzeń można znaleźć, dodając komponenty.
2 maja 2018 r.
- Kandydat do wydania pokoju 1.1.0
- Sala 1.1.0-rc1została zwolniona.
Poprawki błędów
- Sala jest teraz zgodna z aplikacją Kotlin 1.2.40. b/78328708
19 kwietnia 2018 r.
Kandydat do wydania strony
Zwolniono strony 1.0.0-rc1 i sala 1.1.0-beta3.
Strona
Nie planujemy nowych znanych problemów ani nowych funkcji
Stronokowanie wersji 1.0.0. Przejdź na wyższą wersję projektów, aby korzystać z 1.0.0-rc1 i
pomóż nam ją przetestować, abyśmy mogli wysłać solidną jak skałę 1.0.0.
Ta wersja nie zawiera żadnych zmian. Ta wersja jest taka sama jak 1.0.0-beta1.
Room
Poprawki błędów
- Naprawiono błąd kompilacji, gdy POJO w Kotlin odwołuje się do encji relacji, która zostało zdefiniowane w Javie b/78199923.
5 kwietnia 2018 r.
Została zwolniona sala 1.1.0-beta2, stronicowanie 1.0.0-beta1 i wersje RxJava 1.0.0-alpha1.
Funkcja strony będzie dostępna w wersji beta przez krótki czas, zanim stanie się kandydatką do opublikowania.
W przypadku Paging 1.0 nie planujemy dalszych zmian interfejsu API, ponieważ poprzeczka w przypadku jakichkolwiek takich zmian jest bardzo wysoki.
Obsługa stronicowania w wersji alfa RxJava2 jest dostępna jako oddzielny moduł opcjonalny (android.arch.paging:rxjava2:1.0.0-alpha1)
i będzie tymczasowo wyświetlać się w osobnej wersji, dopóki się nie ustabilizuje.
Ta nowa biblioteka stanowi alternatywę dla języka LivePagedListBuilder w języku RxJava2, pozwalającą
Observable i Flowable, co trwa Scheduler zamiast Executor s:
Kotlin
val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable()
Java
Observable<PagedList<Item>> pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable();
Strona
Nowe funkcje
- Pole RxPagedListBuilderzostało dodane za pomocą nowego artefaktuandroid.arch.paging:rxjava2.
Zmiany interfejsu API
- Zmiany w interfejsie API mające na celu wyjaśnienie roli wykonawców w konstruktorach: - Nazwa - setBackgroundThreadExecutor()została zmieniona na- setFetchExecutor()(w:- PagedList.Builderi- LivePagedListBuilder)
- Zmieniono nazwę z - setMainThreadExecutor()na- setNotifyExecutor()(w- PagedList.Builder).
 
- Poprawiono status - PagedList.mCallbacksużytkownika na prywatny.
Poprawki błędów
- Funkcja - LivePagedListBuilderwyzwala wstępne wczytywanie (- PagedList) określonego wykonawcy, zamiast puli wątków IO na poziomie Arch Komponenty.
- Usunięto nieprawidłowe działanie w wewnętrznych kodach towarzyszących - DataSource(stosowanych do implementacji- DataSource.map, oraz ładowanie z wyłączonym symbolem zastępczym- PositionalDataSource) b/77237534
Room
Poprawki błędów
- Naprawiliśmy błąd krytyczny w implementacjach Rx - Singlei- Maybepokoju, w wyniku których spowoduje to powtórzenie zapytania z wyprzedzeniem, co spowoduje problemy, jeśli dodasz więcej niż 1 obserwatora na zwróconych instancjach- Singlelub- Maybe. b/76031240
- Funkcja RoomDatabase.clearAllTables nie - VACUUMspowoduje jej wywołania. w transakcji. b/77235565
21 marca 2018 r.
Sala 1.1.0-beta1, strona docelowa 1.0.0-alpha7 i cykle życia 1.1.1 zostały zwolnione.
Room
Zmiany interfejsu API
- Z opinii wynika, że interfejs @RawQuerynie akceptuje już przekazywaniaStringjako parametru zapytania. Musisz użyć SupportSQLiteQuery. Aby dowiedzieć się, jak łatwo utworzyć instancję SupportSQLiteQuery z obsługą argumentów, zapoznaj się z artykułem SimpleSQLiteQuery.
- Metoda fallbackToDestructiveMigrationFrom RoomDatabase.Builder akceptuje teraz vararg intzamiastvararg Integer.
Poprawki błędów
- Teraz funkcja RoomDatabase.clearAllTables próbuje przywrócić miejsce z powrotem do systemu operacyjnego przez ustawienie punktu kontrolnego WAL i - VACUUMuruchomienie bazy danych.
- @RawQueryakceptuje teraz dowolne pole Pojo dla właściwości- observedEntities, o ile odwołują się do co najmniej 1 encji za pomocą pól- Embeddedlub- Relation. b/74041772
- Stronicowanie: implementacja DataSource w pokoju prawidłowo obsługuje teraz zależności wielu tabel (takie jak relacje i złączenia). Wcześniej nie powodowały one generowania nowych wyników lub mogły się nie skompilować. b/74128314 
Cykle życia
Tylko jedna mała zmiana: element android.arch.core.util.Function został przeniesiony z arch:runtime do arch:common. Dzięki temu nie wymaga żadnego czasu działania, np. w sekcji paging:common poniżej.
lifecycle:common to zależność typu lifecycle:runtime, więc ta zmiana nie wpływa bezpośrednio na lifecycle:runtime, a tylko na moduły zależne bezpośrednio od lifecycle:common, podobnie jak ma to miejsce w przypadku stronicowania.
Strona
Strona 1.0.0-alpha7 jest udostępniana wraz z cyklami życia 1.1.1. Wynik działania strony alfa7 zależy od przeniesienia klasy Function wymienionej powyżej, dlatego musisz zaktualizować zależność lifecycle:runtime do android.arch.lifecycle:runtime:1.1.1.
Określanie stron według stron alpha7 ma być planowane do wprowadzenia w wersji beta przed udostępnieniem tej funkcji.
Zmiany interfejsu API
- Obiekty DataSource.LoadParamsmają teraz konstruktor publiczny, a obiektyDataSource.LoadCallbacksą teraz abstrakcyjne. Umożliwia to opakowywanie klasyDataSourcelub bezpośrednie testowanie funkcjiDataSourceza pomocą pozorowanego wywołania zwrotnego. b/72600421
- Mappery dla DataSource i DataSource.Factory
- map(Function<IN,OUT>)umożliwia przekształcanie, zawijanie i dekorowanie wyników wczytywanych przez- DataSource.
- mapByPage(<List<IN>,List<OUT>>)umożliwia to samo w przypadku przetwarzania wsadowego (np. jeśli elementy wczytywane z SQL muszą dodatkowo wysyłać zapytania do oddzielnej bazy danych, co można zrobić wsadowo).
 
- Dodano metodę PagedList#getDataSource()jako wygodną metodę b/72611341
- Wszystkie wycofane klasy zostały usunięte z interfejsu API, w tym pozostałości pakietu recyclerview.extensionsorazLivePagedListProvider.
- Klasa DataSource.Factoryzostała zmieniona z interfejsu na klasę abstrakcyjną, aby włączyć funkcje mapy.
Poprawki błędów
- Zmiany w konstruktorach na ostateczne. b/70848565
- Implementacja pokoju DataSourcezostała naprawiona, aby umożliwić obsługę zapytań obejmujących wiele tabel – ta poprawka jest dostępna w pokoju 1.1.0-beta1 (patrz wyżej).
- Naprawiliśmy błąd polegający na tym, że funkcja BoundaryCallback.onItemAtEndLoadednie była wywoływana dla elementuPositionalDataSource, jeśli włączone były obiekty zastępcze. łączny rozmiar jest dokładną wielokrotnością rozmiaru strony.
2 marca 2018 r.
Sala 1.1.0-alpha3 została zwolniona. To ostatnia planowana wersja alfa aplikacji
Pokój 1.1.0.
Zmiany interfejsu API
- addObserveri- removeObserverusługi InvalidationTracker są obecnie synchroniczne i trzeba je wywoływać w wątku innym niż interfejs UI. Zapobiega to występowaniu niektórych warunków wyścigu podczas obserwowania tabel.
- W RoomDatabase jest nowa metoda - clearAllTables(). , która skróci całą zawartość tabeli. b/63807999
- Funkcja - SupportSQLiteQueryma teraz metodę- getArgCount(), która zwraca liczbę parametrów zapytania. b/67038952
Poprawki błędów
- Metoda - @RawQueryjest teraz prawidłowo obsługiwana w przypadku zapytań pozycjonujących. b/72600425
- Sala ma teraz prawidłowe nazwy wygenerowanych - Daoklas, aby uniknąć konfliktów nazw, gdy: Co najmniej 2 interfejsy- Daoto wewnętrzne klasy w tym samym pakiecie i mają o tej samej nazwie. b/73536380
- Ogólne typy pól w - Pojos są prawidłowo interpretowane jako element rozszerzenia zajęcia. b/73534868
- Parametry zapytania w - Daointerfejsach dziedziczonych z zależności artefakty są teraz prawidłowo przeanalizowane. b/68118746,
- Zapytania wygenerowane na potrzeby zapytań ( - @Relation) prawidłowo zmieniają znaczenie nazw pól. b/70925483
27 lutego 2018 r.
Umieszczanie stron 1.0.0-alpha6 w bibliotece pomocy jest udostępniane wraz z Biblioteką pomocy w wersji 27.1.0.
Funkcja ListAdapter i kilka powiązanych klas zostały przeniesione z biblioteki stronicowania bezpośrednio do widoku RecyclerView. Wprowadziliśmy też kilka zmian nazw, aby ułatwić korzystanie z funkcji określonych klas. Ta wersja alfa stronicowania to prawdopodobnie ostatnia wersja, w której wprowadzono istotne zmiany powodujące niezgodność interfejsu API.
Zmiany interfejsu API
- Klasy przeniesione do recyclerview-v7:
- ListAdapter
 
- Zmieniono nazwy klas i zostały przeniesione do wersji recyclerview-v7:
- ListAdapterHelper->- AsyncListDiffer
- ListAdapterConfig->- AsyncDifferConfig
- DiffCallback->- DiffUtil.ItemCallback
 
- Zmieniono nazwy klas w środowisku wykonawczym stronicowania:
- PagedListAdapterHelper->- AsyncPagedListDiffer
 
Przeniesione klasy były przydatne wraz z funkcją RecyclerView niezależnie od biblioteki stronicowania. Oznacza to, że można z nich korzystać bez względu na wersję alfa stronicowania, ale jednocześnie aplikacje korzystające z funkcji stronowania muszą zostać zaktualizowane do wersji alfa 6, a w Bibliotece pomocy 27.1.0 trzeba przejść na wersję alfa 6.
** Przewodnik po migracji dla stronicowania Alpha6: **
- Zaktualizuj zależności stronicowania i recyklingu na android.arch.paging:runtime:1.0.0-alpha6icom.android.support:recyclerview-v7:27.1.0- należy to robić jednocześnie, ponieważ element ListAdapter został przeniesiony z stronicowania do RecyclerView
 
- Zaktualizuj wszystkie odniesienia ListAdapterHelperdoAsyncListDiffer- getItem(index)/- getItemCount()zostały usunięte na rzecz wzorca nazewnictwa- getCurrentList().getItem(index)i- getCurrentList().size(), które są bardziej szczegółowe.
 
- Zaktualizuj wszystkie odniesienia ListAdapterConfigdoAsyncDifferConfig
- Zaktualizuj wszystkie odniesienia DiffCallbackdoDiffUtil.IttemCallback
- Zaktualizuj wszystkie odniesienia PagedListAdapterHelperdoAsyncPagedListDiffer
- Zaktualizuj odniesienia setList()dosubmitList()- zmieniono nazwę, aby wyjaśnić asynchroniczny charakter różnic na listach
 
Poprawki błędów
- Naprawiono przekazywanie nieprawidłowej pozycji początkowej do wczytywania początkowego, gdy obiekty zastępcze są wyłączone. b/73513780
15 lutego 2018 r.
Sala 1.1.0-alpha2 została zwolniona.
Nowe funkcje
- Sala obsługuje teraz otwieranie bazy danych w trybie zapisywania z wyprzedzeniem. W tym trybie operacje zapisu nie będą już blokować zapytań odczytu. Mimo że zużywa więcej pamięci (ze względu na wiele połączeń), ten tryb jest zwykle szybciej. Domyślnie sala będzie używać WAL, jeśli urządzenie ma poziom - API 16lub nowszy. nie jest urządzeniem z małą ilością pamięci. Możesz kontrolować to zachowanie za pomocą- setJournalMode()w- RoomDatabase.Builder. B/67757002
- Zespół pomocy Guawy: pokój umożliwia teraz zwracanie grupy Guava - Optional<T>lub- ListenableFuture<T>w zapytaniach- DAO. Aby użyć aplikacji- ListenableFuture<T>, musisz zaimportować- guavaartefakt z pokoju (- android.arch.persistence.room:guava:1.1.0-alpha2).
- Sala obsługuje teraz zwracanie wartości - java.util.Optional<T>w przypadku- DAOzapytań.
- Metody interfejsu z implementacjami domyślnymi są teraz obsługiwane w - @Transactionmetod w- DAOklasach. Działa to zarówno w przypadku- Java 8, jak i- Kotlinb/72416735
Poprawki błędów
- Konstruktory z atrybutem - @Relationnie będą powodować błędu kompilacji, jeśli występuje innego konstruktora, którego można użyć. b/72884434
- W nazwach tabel ze zmianą znaczenia z użyciem - 'w- @Querymetodach znaki mają teraz odpowiednie znaczenie dla narzędzia do śledzenia unieważnień. b/72366965
- Sala używa teraz adnotacji Kotlin - @Metadatado odczytywania struktury zajęć podczas przetwarzania adnotacji. Oznacza to, że nawet jeśli pojo jest dziedziczone z można odczytać nazwy jej parametrów konstruktora. b/67181813
- Problem z wyszukiwaniem ścieżek migracji do niższej wersji został rozwiązany. b/72153525 
- Niestandardowe typy kolumn są teraz obsługiwane prawidłowo podczas migracji z z istniejącej bazy danych do Pokoju. b/71953987 
- Sala prawidłowo obsługuje teraz zachowywane pola - boolean?w klasach Kotlin. b/72786402
22 stycznia 2018 r.
Cykle życia 1.1.0, sala 1.1.0-alpha1 i strona w języku 1.0.0-alpha5 zostały zwolnione.
Cykl życia 1.1.0
Zmiany opakowania
Dostępne są teraz nowe, znacznie mniejsze zależności:
- android.arch.lifecycle:livedata:1.1.0
- android.arch.lifecycle:viewmodel:1.1.0
Zmiany interfejsu API
- Wycofane LifecycleActivityiLifecycleFragmentzostały usunięte – korzystajFragmentActivity,AppCompatActivitylub wspierajFragment.
- Dodano adnotacje (@NonNull) do folderówViewModelProvidersiViewModelStores
- Konstruktor ViewModelProviderszostał wycofany – użyj jego metod statycznych bezpośrednio
- Usługa ViewModelProviders.DefaultFactoryzostała wycofana – używaj wersjiViewModelProvider.AndroidViewModelFactory
- Dodano statyczną metodę ViewModelProvider.AndroidViewModelFactory.getInstance(Application)do pobierania statycznyFactoryodpowiedni do tworzenia instancjiViewModeliAndroidViewModel.
Pokój 1.1.0-alfa1
Nowe funkcje
- RawQuery: ten nowy interfejs API umożliwia metodom- @Daootrzymywanie kodu SQL jako parametru zapytania b/62103290, b/71458963
- fallBackToDestructiveMigrationsFrom: nowy interfejs API w wersji- RoomDatabase.Builderumożliwia dokładniejsza kontrola nad tym, z której wersji schematu początkowego są migracje destrukcyjne dozwolone (w porównaniu z funkcją zastępcząToDestructiveMigration) b/64989640
- Sala obsługuje teraz tylko nowsze interfejsy API stronicowania (alfa-4 lub nowsze), rezygnując z obsługi wycofanych
LivePagedListProviderAby korzystać z nowej wersji alfa pokoju, musisz użyć podziału na stronyalpha-4lub nowszej i przełącz się zLivePagedListProvidernaLivePagedListBuilder, jeśli jeszcze nie zostało to zrobione.
Poprawki błędów
- Ulepszona obsługa typów Kotlin Kapt. b/69164099
- Kolejność pól nie unieważnia już schematu. b/64290754
Strzelanie 1.0.0-alfa5
Poprawki błędów
- Rozwiązywanie problemów z wczytywaniem strony po wyłączeniu obiektów zastępczych b/70573345
- Dodatkowe logowanie umożliwiające śledzenie błędu IllegalArgumentException b/70360195 (i spekulacyjnej poprawki po stronie pokoju)
- Poprawki przykładowego kodu Javadoc b/70411933, b/71467637
11 grudnia 2017 r.
Strona alpha4-1 została zwolniona. Jest to mała wersja poprawki błędu w wersji alfa 4 stronicowania.
Poprawki błędów
- Nie sprawdzaj parametrów wywołania zwrotnego pod kątem nieprawidłowych źródeł danych. b/70353706, b/70360195
7 grudnia 2017 r.
Wprowadzamy stronę alpha4 z istotnymi zmianami i dodaniami, głównie
kierowania na sieć reklamową oraz na sieć i bazę danych.
Zmiany interfejsu API
- DataSourceto teraz asynchroniczny interfejs API, który ułatwia stronicowanie bezpośrednio z sieci:- Pojedynczy punkt wejścia na początkowy rozmiar i dane
- Obsługuje ponawianie próby w sieci przez zatrzymywanie połączenia zwrotnego i wysyłanie go później
- Wywołania zwrotne Threadsafe umożliwiają ładowanie asynchroniczne w celu utworzenia jednej sieci
udało się wykonać kopię zapasową PagedListw wątku UI.
- Bardziej przejrzyste zachowanie błędów w pobliżu parametrów wczytywania początkowego
 
- Nazwa - TiledDataSourcezostała zmieniona na- PositionalDataSource, aby odzwierciedlić indeksowanie oparte na pozycji i to, że nie kafelują się, gdy obiekty zastępcze są wyłączono.
- Dodano - PageKeyedDataSourcedo obsługi kolejnych/poprzednich tokenów umieszczonych w wczyta się strona sieci.- KeyedDataSourcezmienił(a) nazwę na- ItemKeyedDataSource, aby zrobić jest wyraźna.
- LivePagedListBuilderi- DataSource.Factoryzastępują- LivePagedListProviderKreator udostępnia te same możliwości i udostępnia więcej opcji i prostsze ustawienia domyślne. Fabryka zezwala na generowanie- DataSourceaby był niezależny od- LiveData.
- Dodano - PagedList.BoundaryCallbackdla przypadku użycia bazy danych i sieci.
- Konstruktor - PagedList.Builderwykonuje teraz- DataSource+- PagedList.Configbardziej podobny do- LivePagedListBuilderi zezwala na operator diamentowy w języka Java ani wywnioskowanych typów w Kotlin.
- Dodano użytkownika - PagedList.getConfig(), a- PagedList.Configma teraz członka publicznego usług.
- KeyedDataSource.loadBefore()nie oczekuje już odwrócenia wyników.
- PagedListAdapter.onCurrentListChanged()dodał(a) do nasłuchiwania aktualizacji, na których Wyświetlana jest lista PagedList.
Poprawki błędów
- Poprawiono wyjątek IndexOutOfBoundsException w metodzie PagedListAdapter(Helper) b/67883658
1.0.0 – 6 listopada 2017 r.
Wszystkie główne komponenty (z wyjątkiem stronicowania) są teraz dostępne jako 1.0.0. To dokładnie tak samo
wersję rc1 z wyjątkiem jednej zmiany w bibliotece reactivestreams.
Poprawki błędów
- Narzędzie LiveDataReactiveStreamsprawidłowo implementuje teraz zgodnie ze specyfikacją Strumienie reaktywne. b/67999342
Kandydat do publikacji – 18 października 2017 r.
Wszystkie główne artefakty (z wyjątkiem stronicowania) są teraz w stanie 1.0.0-rc1.
Nie planujemy nowych znanych problemów ani nowych funkcji
Wersja 1.0.0. Przejdź na wyższą wersję projektów, aby zacząć korzystać z usługi 1.0.0-rc1 i pomóc nam
żeby przetestować ją w walce i wysłać solidny jak kamień 1.0.0.
Zmiana działania
- W tej wersji usługa Lifecycle.Event#ON_STOPjest teraz wysyłana, gdyonSaveInstanceStatema nazwę (wcześniej była oznaczona jakoCREATED) bez wysyłaniaON_STOP). Więcej informacji na ten temat znajdziesz w Dokumentacja cyklu życia.
Poprawki błędów
- Pokój: - Pokój jest teraz zależny od najnowszego artefaktu xerialnego, który naprawia OutOfMemorypodczas kompilacji. b/62473121
- Metody usługi Querymożna teraz dodawać za pomocą adnotacji@Transaction. Więcej informacji znajdziesz w dokumentach referencyjnych na stronie@Transaction. b/65112315
- StringUtilzajęcia w pokoju zostały usunięte publicznie API (nigdy nie był to publiczny interfejs API).
 
- Pokój jest teraz zależny od najnowszego artefaktu xerialnego, który naprawia 
- Cykle życia: - LiveDatadziała prawidłowo, gdy aktywność jest częściowo objęta interfejsem API < 24. b/65665621
- Metody - OnLifecycleEventw klasach nadrzędnych są teraz prawidłowo wywoływane lub Jeśli nie jest to możliwe, podczas kompilacji jest wyświetlane ostrzeżenie. b/63474615
- Cykl życia zapewnia teraz - WeakReferenceLifecycleOwner, aby uniknąć wycieku danych LifecycleOwner, jeśli cykl życia jest przechowywany w pamięci dłużej niż zwykle (to tylko środek ostrożności – należy uważać, aby nie nie wyciekły- Lifecycle).
 
9 października 2017 r.
Zwolniono stronę alpha-3. dzięki czemu jest zgodny z beta 2
nowych cykli życia oraz Pomieszczeń.
Poprawki błędów
- Dokumentacja ulepszonej strony pozycjonowania.
5 października 2017 r.
Wszystkie główne artefakty (z wyjątkiem stronicowania) są teraz w stanie beta 2.
W tej wersji nie ma nowej wersji stronicowania.
Poprawki błędów
- Cykle życia: - LiveDataReactiveStreamsprawidłowo anuluje subskrypcję źródła , gdy kolumna- LiveDatajest nieaktywna. b/62609183
- Zdarzenia cyklu życia są prawidłowo przekazywane do klas nadrzędnych, jeśli klasa nadrzędna pochodzi z innego modułu. b/63474615
- LiveData prawidłowo obsługuje obserwatorów, gdy anulują oni subskrypcję tworzenia subskrypcji. b/66337741
- FullLifecycleObserverArtefakt języka Java 8 jest teraz dostępny w drzewie zależności. b/66525578
- W przypadku ProGuard dodaj do niego te wiersze. (Nie będzie to konieczne w przypadku wysyłki w wersji 1.0.0) - -keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
 
 
- Pokój: - Sala wyświetla teraz błąd podczas kompilowania, gdy zwrócone dane Pojo w
Metoda @Queryma pole@NonNull, które nie pasuje do żadnego z w odpowiedzi na zapytanie. Jeśli pole to@Nullable, tylko sala wyświetli ostrzeżenie. b/67115337
- Sala weryfikuje indeksy w nowszych wersjach systemu operacyjnego. b/63132683
- Jeśli jest ich kilka, sala domyślnie wybiera konstruktor pozbawiony argumentu w Pojo. b/67353427
- Klucze podstawowe jednokolumnowe mogą mieć wartość Nullable, jeśli jest toIntegerlubLong. b/67086876
- Śledzenie unieważnień prawidłowo obsługuje ponowne wprowadzanie danych w trybie testowym. b/65471397
- Sala sprawdza teraz, czy w kolumnach i tabelach nie ma nieprawidłowych znaków
nazw podczas kompilacji (nieprawidłowe znaki: `,"). b/64749111
 
- Sala wyświetla teraz błąd podczas kompilowania, gdy zwrócone dane Pojo w
Metoda 
21 września 2017 r.
W tej wersji wszystkie moduły architektury mają co najmniej beta 1
(z wyjątkiem nowej biblioteki stronicowania, która jest alpha 2).
Nie planujemy kolejnych zmian interfejsu API. Mogą wystąpić nieplanowane zmiany, ale
bariery zmiany interfejsu API przed stabilną wersją 1.0.0 jest bardzo duża i mało prawdopodobne, że nastąpi to.
- Cykl życia Fragment cyklu życia zostanie usunięty przed stabilną wersją 1.0.0. Ta nie są potrzebne, gdy korzystasz z Biblioteki pomocy w wersji26.1.0lub nowszej.
W przeciwieństwie do fazy alfa faza beta jest planowana bardzo krótko.
Zmiany wersji
- Rozszerzenia cyklu życia i sala są teraz beta 1
- Formatowanie strony to teraz alpha 2
- Brak zmian w cyklach życia (środowisko wykonawcze, powszechne) i Arch Core (wspólny). Oba te artefakty
są w wersji 1.0.0od 13 września.
Nowe artefakty
- Cykle życia mają teraz nowy artefakt o nazwie - common-java8. Ten artefakt zawiera nowy interfejs o nazwie DefaultLifecycleObserver; który ma domyślne implementacje dla wszystkich metod cyklu życia. Jeśli używasz języka Java 8, lepiej korzystać z tego artefaktu niż adnotacji.- Z powodu błędu w beta1musisz dodać bezpośrednią zależność odandroid.arch.lifecycle:common:1.0.1, aby używać nowego artefaktucommon-java8. Ten problem zostanie rozwiązany zabeta2.
 
- Z powodu błędu w 
Zmiany opakowania
- Element android.arch.persistence.room.dbzostał przeniesiony do folderuandroid.arch.persistence.db
- Przeniesiono użytkownika android.arch.persistence.room.db-impli jego nazwę naandroid.arch.persistence.db-framework
Oba te artefakty są już zależne od pokoju, więc jeśli nie używasz ich bezpośrednio, nie musisz wprowadzać żadnych zmian w plikach kompilacji.
Zmiany interfejsu API
- Pokój: - Adnotacja @ColumnInfo umożliwia teraz ustawianie metody porównywania dla kolumny. B/62007004
- Pola transientsą teraz domyślnie ignorowane, chyba że mają adnotację@ColumnInfo,@Embeddedlub@Relation. b/62600692
- Klucze główne muszą mieć adnotację @NonNull, chyba że zostaną wygenerowane automatycznie. b/64292391- .
- Ta zmiana może wymagać migracji schematu. Przepraszamy za niedogodności.
 
- Dodaliśmy nową adnotację o wygodzie (@Transaction), która
zastępuje metodę DAOi uruchamia ją w transakcji.
 
- Obsługuj bazę danych SQLite: - Zmiany interfejsu API w konfiguracji bazy danych. b/65349673 b/65499876
 
- Stronicowanie: - Ulepszona dokumentacja stron internetowych z większą liczbą przykładów i adnotacji do wątków.
 
Poprawki błędów
- Pomieszczenie:
- Wielowierszowe ciągi tekstowe Kotlin w metodach @Querysą obsługiwane prawidłowo. b/65809374
 
- Wielowierszowe ciągi tekstowe Kotlin w metodach 
- Stronicowanie:
- Artefakt strony nie zależy już od jednostki junit. b/65690261
 
1.0.0 alfa 9-1 – 13 września 2017 r.
To duża wersja, w której podstawowe artefakty cyklu życia (wspólne środowisko wykonawcze) i rdzenie łukowe (wspólne)
do wersji stabilnej 1.0.0.
Oprócz tej zmiany obsługa Biblioteki pomocy w wersji 26.1.0 jest teraz oparta na tych bibliotekach. AppCompatActivity i Support Fragment. zaimplementujemy interfejs LifecycleOwner.
Ta wersja korzysta również z biblioteki pomocy 26.1.0, aby korzystać z nowej integracji.
Nowa biblioteka: stronicowanie
Ta wersja zawiera też nową bibliotekę o nazwie Paging, która umożliwia łatwe ładowanie dużych
w razie potrzeby we fragmentach danych RecyclerView. Paging jest dostępny jako alpha1
i ma własny cykl premierowy.
Zmiany interfejsu API
- Te klasy są wycofane i zostaną usunięte w przyszłej wersji:
Poprawki błędów
- Wygenerowane klasy są teraz opatrzone adnotacją - @Generated, jeśli aplikacja ma adnotację w ścieżce klasy. b/35754819
- Usunięto błąd porównania obserwatora w narzędziu MediatorLiveData. b/64413274 
- Zapytania SQLite - WITHsą teraz obsługiwane w przypadku zapytania [LiveData]. [ref-LiveData] b/62510164
- Naprawiono błąd, który powodował, że nieprawidłowa lista wysyłała nieprawidłowe informacje, jeśli była ich więcej niż 1 tabela. obserwowane zjawisko. b/65099281 
- Naprawiono błąd, który powodował, że pokój generował różne pliki w systemie Windows. b/64470691 
- Usługa LifecycleObservers w pakiecie głównym jest teraz obsługiwana. b/62310817 
1.0.0 alfa 9 – 16 sierpnia 2017 r.
Poprawki błędów.
- Naprawiliśmy błąd w LiveData, który powodował, że drugi parametr Observer był ignorowany, gdy usunięto pierwszy z nich z metody onChanged. b/64285805
1.0.0 alfa 8 – 1 sierpnia 2017 r.
Zmiany w działaniu
- Do kolumn typów podstawowych lub kolumn dodano ograniczenie NOT NULLadnotacja NonNull. Zmienia to strukturę więc jeśli używasz Komponentów architektury w wersji alfa 7 lub starszej, musisz wdrożyć migrację, jeśli chcesz zachować dane, lubfallbackToDestructiveMigration(). b/62007004
Zmiany interfejsu API
- Rozszerzenie SupportSQLiteProgram rozszerza teraz zakres AutoCloseable. b/63131997
1.0.0 Alpha 7 – 26 lipca 2017 r.
Poprawki błędów.
- Naprawiliśmy krytyczny błąd w metodzie LifecycleRegistry - removeObserver, który powodował błędy odczytu LifecycleObserver.
- Poprawiono parametr invalidationTracker w przypadku niestandardowych baz danych b/63162311 
1.0.0 alfa 6 – 25 lipca 2017 r.
Zmiany w działaniu
- Zmieniła się kolejność wywołań LifecycleObserver. Wcześniej obserwatorzy byli zawsze wywoływani w kolejności, w jakiej zostali dodani: jeśli zdarzenie - observer1zostało dodane przed- observer2, otrzyma zdarzenie- ON_CREATEi wszystkie pozostałe zdarzenia przed- observer2. Nie dotyczy to już zdarzeń zniszczenia – w ich przypadku obserwatorzy są wywoływani w odwrotnej kolejności dodawania. Zatem obecne działanie jest takie: jeśli zdarzenie- observer1zostało dodane przed- observer2, to- ON_CREATEjest najpierw wysyłane do- observer1, a potem do- observer2(to samo dzieje się w przypadku- ON_STARTi- ON_RESUME), ale zdarzenie- ON_PAUSEjest wysyłane najpierw do- observer2, a dopiero potem do- observer1(to samo w przypadku- ON_STOPi- ON_DESTROY).
- Jeśli brakuje migracji, pokój zgłasza wyjątek. Wcześniej usługa Room po prostu czyściła bazę danych, ale teraz ulegała awarii. Deweloperzy mogą wyrazić zgodę na proces czyszczenia, wywołując interfejs API kreatora. b/63872392 
Zmiany interfejsu API
- Metoda - fallbackToDestructiveMigration()została dodana do:- RoomDatabase.Builderdo: wyczyścić bazę danych, jeśli nie ma migracji. b/63872392
- Komponenty architektury zależą teraz od biblioteki pomocy w wersji 26.0.0 
Poprawki błędów.
- Poprawiono obsługę elementu @Relation w tagu @Embedded. b/63736065 
- Naprawiono migracje testowe dotyczące tabel z automatycznie zwiększanym kluczem podstawowym. b/63393618 
- Teraz @Zapytania, które uruchamiają zapytania DELETE lub AKTUALIZUJ, prawidłowo otrzymują argumenty. b/63872538 
- Obecnie modele widoku danych są zachowywane, gdy fragment właściciela znajduje się w stosie wstecznym, a zmiana konfiguracji następuje 2 razy. b/38445801 
1.0.0 alfa 5 – 18 lipca 2017 r.
Zmiany interfejsu API
- Do - RoomDatabase.Builderdodano nową metodę wywołania zwrotnego, która pozwala obserwować, kiedy baza danych jest tworzona lub otwierana. b/62699324
- @Query może teraz zwracać kod RxJava - Maybelub- Single. b/62231019
Aby dodać obsługę RxJava do pokoju, musisz korzystać z android.arch.persistence.room:rxjava2 artefaktu.
Poprawki błędów.
- Naprawiono - @Deletezapytań bez parametrów. b/63608092
- Naprawiono sprawdzanie rodzaju pomieszczeń dla pobierających i ustalających. b/63733651 
1.0.0 alfa 4 – 11 lipca 2017 r.
Zmiany interfejsu API
- Dodano nową wygodną metodę ( - runInTransaction()) do RoomDatabase.
- Metody - @Insert,- @Deletei- @Updatemogą teraz mieć parametry pochodzące z różnych typów encji. b/62682405
Poprawki błędów
- Naprawiliśmy obsługę polecenia - byte[]w metodach- @Dao. b/62460045
- Sprawdzanie migracji w pokoju korzysta teraz z porównania bez rozróżniania wielkości liter. b/62875382 
- Naprawiono konfigurację ProGuard na potrzeby artefaktu Cykle życia. b/62113696 
1.0.0 alfa 3 – 15 czerwca 2017 r.
Zmiany interfejsu API
- @OnLifecycleEventobsługuje teraz tylko 1 parametr zdarzenia. To zmiana w ramach przygotowań do obsługi języka Java 8, dzięki której będziemy mogli z metodami domyślnymi w przyszłości. W związku z tą zmianą metody z adnotacjami- @OnLifecycleEvent(ON_ANY)mogą otrzymywać drugi parametr typu- Event(pierwszy parametr to- LifecycleOwner). Szczegółowe informacje znajdziesz w dokumentacji cyklu życia.
- Zajęcia - LifecycleActivityi- LifecycleFragmentsą przenoszone do artefaktu- android.arch.lifecycle:extensions.
- MigrationTestHelper otrzymuje instancję Instrumentation zamiast - Context, aby móc odczytać schemat z zasobów testowych i utworzyć dla bazy danych w kontekście aplikacji.
- Adnotacje - @Insert,- @Deletei- @Updatew metodzie- @DAOmożna teraz mieć- Iterablejako typ parametru. b/62259820
Poprawki błędów
- Zastąpione metody ze zdarzeniami cyklu życia nie są już wywoływane wielokrotnie. 
- Wiele parametrów - INjest teraz obsługiwanych prawidłowo. b/62608681,
- Abstrakcyjne klasy DAO mogą teraz mieć konstruktor odbierający żądanie - @Databaseinstancji. b/38488747
- Elementy - DAOmogą teraz mieć superklasę/interfejs z parametrami typu. b/62103620
1.0.0 alfa 2 – 2 czerwca 2017 r.
Zmiany interfejsu API
- Wywołanie zwrotne InvalidationTracker otrzymuje teraz listę zmienionych nazw tabel. (B/38468740) 
- Ograniczono powierzchnię interfejsu API klasy SupportSQLiteDatabase. (b/38481640) 
Poprawki błędów
- Chroń pliki na potrzeby cykli życia. (B/62113696)
- Utrata danych w przypadku konwersji typu. (B/62100716)
- Zezwalaj na zwracanie wartości Long[]z zapytań@Insert.
1.0.0 alfa 1 – 17 maja 2017 r.
MinSDK: 14
Zalecenia ogólne
- Przeprowadziliśmy wiele testów przed uruchomieniem usługi, ale komponenty architektury znajdują się obecnie w fazie alfa. Jeśli tworzysz aplikację produkcyjną, pamiętaj, że interfejs API zmieni się przed wersją 1.0 i może nie być w pełni rozbudowany. Jeśli nie czujesz się komfortowo debugować problemy w używanych bibliotekach, zalecamy wypróbowanie komponentów architektury najpierw w innych projektach. 
- Nie zalecamy wszystkim dzisiaj migracji. Przygotujemy przewodnik po migracji dotyczący komponentów architektury w wersji 1.0. 
Znane ograniczenia i problemy
- Cykl życia  FragmentiActivityCompatw Bibliotece pomocy nie implementują jeszcze interfejsuLifecycleOwner. Zostaną one przywrócone, gdy komponenty architektury osiągną wersję 1.0.0.
