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ępczejOnNavigateUpListener. instancja, która zostanie wywołana po zwróceniunavController.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 metodamisetup. DodajmenuCategory="secondary"do Twojego urządzeniaMenuItem, 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 wzorcaBuilderi 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 firmynavigate()naNavigator. 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ądzenieCoroutineWorker.- 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 terazIndexOutOfBoundsException, 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 1WorkContinuationzamiast 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 wersjiRoomDatabase.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/62334005fallbackToDestructiveMigrationOnDowngrade: to nowy interfejs API wRoomDatabase.Builder, który automatycznie odtwarza bazę danych w przypadku przejścia na niższą wersję. b/110416954ignoredColumns: 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
mCallbackimDatabasew pokojuRoomDatabaseto 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óciIllegalStateException. 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ń typuPeriodicWorkRequestsą 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 wersji1.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. MetodaWorker.isStopped()zwraca wartośćtrue, jeśli zostanie zażądany jakikolwiek przystanek. FunkcjaWorker.isCancelled()zwraca wartośćtrue, gdy zadanie zostało wyraźnie anulowane. b/79632247Dodano 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ługJobSchedulerlubAlarmManager. Dzięki temuWorkManagernie będzie mógł zająć wszystkich dostępnychJobSchedulermiejsc.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/79996760Worker.getRunAttemptCount()zwraca bieżącą liczbę uruchomień dla danegoWorker. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)umożliwia dodanie unikalnych komponentówPeriodicWorkRequestdo kolejki. b/79600647WorkManager.cancelAllWork()anuluje wszystkieWorker. Biblioteki zależne odWorkManagermogą wysyłać zapytania, gdy ta metoda została wywołana jako ostatnia, używającWorkManager.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 naWorker.Result.Worker.onStoppedma teraz dodatkowy parametrisCancelled, który jest ustawiony natrue, jeśli parametrWorkerzostał jednoznacznie anulowany.
7 czerwca 2018 r.
Nawigacja 1.0.0-alpha02 została zwolniona.
Nawigacja
Zmiany w działaniu
FragmentNavigatorużywa terazsetReorderingAllowed(true). b/109826220Argumenty 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/79632233W 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/79656847Naprawiono błąd
StackOverflowError, który występował podczas korzystania z NavDeepLinkBuilder. b/109653065Naprawiono błąd
IllegalArgumentExceptionwystępujący podczas przechodzenia z powrotem do wykresu zagnieżdżonego. b/80453447Naprawiono problem z pokrywającymi się fragmentami podczas korzystania z funkcji
launchSingleTop. b/79407969Nawigacja 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 tabeliNavOptionszostały wycofane. b/80338878Atrybut
launchDocumentdziałań i powiązany z nim interfejs API w tabeliNavOptionszostały wycofane. b/109806636
24 maja 2018 r.
Zwolniono usługę WorkManager 1.0.0-alpha02.
Menedżer roboczy
Poprawki błędów
Naprawiono
NullPointerExceptionnaState.isFinished(). b/79550068Rozwiązaliśmy problem, który powodował przełożenie spotkań
WorkernaApplication.onCreate(). b/79660657Rozwią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 plikuData. b/79443878Data.Builder.putAll()zwraca teraz wystąpienieBuilder. b/79699162Wię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, czyWorkerzostał 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 iTimeUnit. Chroni Cię@RequiresApi(26).WorkManagerrozszerzenia zostały przeniesione z pakietuandroidx.work.ktxdo pakietuandroidx.work. Stare rozszerzenia są wycofane i zostaną usunięte w przyszłej wersji.Interfejs
Configuration.withExecutor()został wycofany. Użyj w zamian zasadyConfiguration.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 nasetFetchExecutor()(w:PagedList.BuilderiLivePagedListBuilder)Zmieniono nazwę z
setMainThreadExecutor()nasetNotifyExecutor()(wPagedList.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 implementacjiDataSource.map, oraz ładowanie z wyłączonym symbolem zastępczymPositionalDataSource) b/77237534
Room
Poprawki błędów
Naprawiliśmy błąd krytyczny w implementacjach Rx
SingleiMaybepokoju, 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 instancjachSinglelubMaybe. b/76031240Funkcja 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ściobservedEntities, o ile odwołują się do co najmniej 1 encji za pomocą pólEmbeddedlubRelation. b/74041772Stronicowanie: 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 przezDataSource.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
addObserveriremoveObserverusł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/63807999Funkcja
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/72600425Sala ma teraz prawidłowe nazwy wygenerowanych
Daoklas, aby uniknąć konfliktów nazw, gdy: Co najmniej 2 interfejsyDaoto wewnętrzne klasy w tym samym pakiecie i mają o tej samej nazwie. b/73536380Ogólne typy pól w
Pojos są prawidłowo interpretowane jako element rozszerzenia zajęcia. b/73534868Parametry 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->AsyncListDifferListAdapterConfig->AsyncDifferConfigDiffCallback->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
ListAdapterHelperdoAsyncListDiffergetItem(index)/getItemCount()zostały usunięte na rzecz wzorca nazewnictwagetCurrentList().getItem(index)igetCurrentList().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()wRoomDatabase.Builder. B/67757002Zespół pomocy Guawy: pokój umożliwia teraz zwracanie grupy Guava
Optional<T>lubListenableFuture<T>w zapytaniachDAO. Aby użyć aplikacjiListenableFuture<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 przypadkuDAOzapytań.Metody interfejsu z implementacjami domyślnymi są teraz obsługiwane w
@Transactionmetod wDAOklasach. Działa to zarówno w przypadkuJava 8, jak iKotlinb/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/72884434W nazwach tabel ze zmianą znaczenia z użyciem
'w@Querymetodach znaki mają teraz odpowiednie znaczenie dla narzędzia do śledzenia unieważnień. b/72366965Sala 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/67181813Problem 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.0android.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/71458963fallBackToDestructiveMigrationsFrom: nowy interfejs API w wersjiRoomDatabase.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 naPositionalDataSource, 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ę naItemKeyedDataSource, aby zrobić jest wyraźna.LivePagedListBuilderiDataSource.FactoryzastępująLivePagedListProviderKreator udostępnia te same możliwości i udostępnia więcej opcji i prostsze ustawienia domyślne. Fabryka zezwala na generowanieDataSourceaby był niezależny odLiveData.Dodano
PagedList.BoundaryCallbackdla przypadku użycia bazy danych i sieci.Konstruktor
PagedList.Builderwykonuje terazDataSource+PagedList.Configbardziej podobny doLivePagedListBuilderi zezwala na operator diamentowy w języka Java ani wywnioskowanych typów w Kotlin.Dodano użytkownika
PagedList.getConfig(), aPagedList.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/65665621Metody
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/63474615Cykl ż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łyLifecycle).
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 kolumnaLiveDatajest 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/66525578W 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/35754819Usunię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/62510164Naprawiono 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 przedobserver2, otrzyma zdarzenieON_CREATEi wszystkie pozostałe zdarzenia przedobserver2. 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 zdarzenieobserver1zostało dodane przedobserver2, toON_CREATEjest najpierw wysyłane doobserver1, a potem doobserver2(to samo dzieje się w przypadkuON_STARTiON_RESUME), ale zdarzenieON_PAUSEjest wysyłane najpierw doobserver2, a dopiero potem doobserver1(to samo w przypadkuON_STOPiON_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/63872392Komponenty 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
MaybelubSingle. 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/63608092Naprawiono 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/62460045Sprawdzanie 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 typuEvent(pierwszy parametr toLifecycleOwner). Szczegółowe informacje znajdziesz w dokumentacji cyklu życia.Zajęcia
LifecycleActivityiLifecycleFragmentsą przenoszone do artefaktuandroid.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/38488747Elementy
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.