Archiv der Versionshinweise zu Architekturkomponenten

15. Januar 2019

WorkManager

WorkManager 1.0.0-beta02 wurde veröffentlicht. Diese Version enthält einige Fehlerkorrekturen.

Fehlerkorrekturen

  • Es wurde ein Grenzfall behoben, bei dem regelmäßige Arbeiten mehrmals pro Intervall ausgeführt werden konnten. auf Geräten mit Android 6.0 (API-Level 23). b/121998363
  • Fehler behoben: ConcurrentModificationException auf Geräten mit Android 5.1 (API) Stufe 22) oder niedriger ist. b/121345393
  • Die fehlerhafte Ausführung von Arbeiten, wenn die Einschränkungen auf Geräten nicht erfüllt wurden, wurde behoben. mit Android 5.1 (API-Level 22) oder niedriger. b/122578012
  • Die Bearbeitung von Aufgaben wurde optimiert, um in einigen Grenzfällen schneller zu arbeiten. b/122358129
  • Es wurde eine Änderung hinzugefügt, um potenzielle Race-Bedingungen zwischen mehreren Instanzen zu beheben. von LiveData, die WorkManager verwendet.
  • Verschoben, um die Room-Abhängigkeit 1.1.1 anstelle von 1.1.1-rc01 zu verwenden. diese Versionen identisch sind. b/122578011

19. Dezember 2018

WorkManager

WorkManager 1.0.0-beta01 wurde veröffentlicht. Diese Version enthält keine API-Änderungen. Künftig bleibt WorkManager API bis zur nächsten Version stabil, sofern kein kritisches Problem auftritt. Diese Version enthält einige Fehlerkorrekturen.

Fehlerkorrekturen

  • Zuvor stornierte untergeordnete Elemente von erfolgreich abgeschlossenen übergeordneten Aufgaben werden nicht mehr ausgeführt. b/120811767
  • Korrekt initialisierte Logging-Klassen, die hauptsächlich während Tests angezeigt werden

18. Dezember 2018

Die Navigation „1.0.0-alpha09“ wurde veröffentlicht. Diese Version enthält wichtige API-Änderungen. Weitere Informationen finden Sie unten im Abschnitt Nicht abwärtskompatible Änderungen.

Wir haben uns entschlossen, die Weiterentwicklung des android.arch.navigation:navigation-testing Artefakt. Es hat sich zwar bewährt, hilfreich für interne Tests von NavController. Wir empfehlen dringend, alternative Teststrategien, z. B. die Simulation der NavController-Instanz um zu überprüfen, ob die richtigen navigate()-Aufrufe ausgeführt werden. Dieses wird ausführlich in der Single Activity Talk beim AndroidDevSummit 2018 Außerdem werden wir weitere Dokumente zu Tests entwickeln, mit Navigation.

Neue Funktionen

  • MenuItems mit menuCategory="secondary" werden nicht mehr als Antwort angezeigt. Stack in Verbindung mit NavigationUI-Methoden. b/120104424
  • In AppBarConfiguration können Sie jetzt ein Fallback festlegen OnNavigateUpListener -Instanz, die aufgerufen wird, wenn navController.navigateUp() Folgendes zurückgibt: false b/79993862 b/120690961

Nicht abwärtskompatible Änderungen

  • Wenn ein <argument> mit einem argType="reference" verwendet wird, wird die Navigation nicht mehr aktiviert. parst die Referenz und gibt stattdessen die Rohressourcen-ID selbst an. b/111736515
  • onNavDestinationSelected() jetzt standardmäßig zum Startziel Ihrer Navigationsgrafik zurück, damit sie mit den setup-Methoden konsistent sind. Hinzufügen menuCategory="secondary" zu deinem MenuItem, damit der Back-Stack nicht geplatzt wird. aosp/852869
  • Die fromBundle()-Methoden der generierten Args-Klassen verwenden jetzt eine Nicht-Null-Werte Bundle anstelle einer Bundle, für die Nullwerte zulässig sind aosp/845616

Fehlerkorrekturen

  • Argumente werden jetzt korrekt aus Deeplinks als die richtige argType geparst. statt immer als Zeichenfolgen, b/110273284
  • Die Navigation exportiert ihre öffentlichen Ressourcen jetzt korrekt. b/121059552
  • Safe Args ist jetzt mit dem Android-Gradle-Plug-in 3.4 Canary 4 und höher kompatibel. b/119662045

12. Dezember 2018

WorkManager

WorkManager 1.0.0-alpha13 wurde veröffentlicht. Diese Version enthält eine kleinere API-Änderung, die für einige Nutzer von Kotlin hilfreich ist.

API-Änderungen

  • androidx.work.Result wurde zu einer inneren Klasse von ListenableWorker verschoben. Dadurch werden Refaktorierungskonflikte mit der übergeordneten Result-Klasse von Kotlin vermieden. Dies ist eine funktionsgefährdende API-Änderung. b/120564418

Nicht abwärtskompatible API-Änderungen

  • androidx.work.Result wurde zu einer inneren Klasse von ListenableWorker verschoben.

6. Dezember 2018

Paging

Paging 2.1.0-rc01 wurde ohne Änderungen gegenüber 2.1.0-beta01 freigegeben.

Die Navigation „1.0.0-alpha08“ wurde veröffentlicht. Diese Version enthält wichtige API-Änderungen. Weitere Informationen finden Sie unten im Abschnitt Nicht abwärtskompatible Änderungen.

Neue Funktionen

  • Bei Verwendung mit NavigationUI-Methoden werden Ziellabels jetzt automatisch Ersetzen Sie {argName} Instanzen in android:label durch das richtige Argument b/80267266
  • Die Navigation hängt jetzt von der Support Library 28.0.0 ab b/120293333

Nicht abwärtskompatible Änderungen

  • OnNavigatedListener wurde in OnDestinationChangedListener umbenannt. b/118670572
  • OnDestinationChangedListener übergibt jetzt auch die Bundle von Argumenten. aosp/837142
  • Die Attribute app:clearTask und app:launchDocument sowie die zugehörigen zugehörigen wurden entfernt. Verwenden Sie app:popUpTo mit dem Stamm der Grafik, um entfernen Sie alle Ziele aus dem Back Stack. b/119628354
  • ActivityNavigator.Extras verwendet jetzt ein Builder-Muster und bietet folgende Möglichkeit: Intent.FLAG_ACTIVITY_-Flags festlegen aosp/828140
  • NavController.onHandleDeepLink wurde in handleDeepLink umbenannt. aosp/836063
  • Viele Klassen und Methoden, die nicht für abgeleitete Klassen vorgesehen sind, z. B.: NavOptions, NavInflater, NavDeepLinkBuilder und AppBarConfiguration, wurden als final festgelegt. aosp/835681
  • Die verworfene Methode NavHostFragment.setGraph() wurde entfernt aosp/835684
  • Die eingestellte Methode NavigationUI.navigateUp(DrawerLayout, NavController) wurde entfernt. aosp/835684
  • Die Fragmenterstellung wurde in FragmentNavigator verschoben, um das Erstellen von Fragmenten zu erleichtern die Fragmenterstellung an eine FragmentFactory delegieren. b/119054429
  • Der Konstruktor für NavGraphNavigator nimmt keinen Context mehr an aosp/835340
  • NavigatorProvider ist jetzt einer Klasse statt einer Benutzeroberfläche. Die NavigatorProvider, die von getNavigatorProvider() die Funktionsweise nicht geändert. aosp/830660
  • NavDestination.navigate() wurde entfernt. navigate() über Navigator anrufen . aosp/830663
  • Erhebliche Refaktorierung von Navigator, wodurch OnNavigatorNavigatedListener nicht mehr erforderlich ist Stattdessen gibt navigate die NavDestination zurück, zu der der Nutzer navigiert ist.
  • Navigator-Instanzen können keine Pop-Ereignisse mehr an NavController senden. Erwägen Sie mit OnBackPressedCallback, um Drücken der Schaltfläche „Zurück“ abfangen und navController.popBackStack() aufrufen. aosp/833716

Fehlerkorrekturen

  • popUpTo funktioniert jetzt einheitlich, wenn das Ziel ein <navigation>-Element ist b/116831650
  • Es wurden mehrere Fehler behoben, die zu einem IllegalArgumentException führten. bei Verwendung verschachtelter Grafiken b/118713731 b/113611083 b/113346925 b/113305559
  • Das Attribut dataPattern von <activity>-Zielen wird jetzt mit Daten gefüllt Argumente aus Nicht-String-Argumenten durch Aufrufen von toString() b/120161365

Sichere Argumente

  • Sichere Args unterstützt serialisierbare Objekte, einschließlich Enum-Werten. Enum-Typen kann mit dem enum-Literal ohne den Klassennamen einen Standardwert festlegen. (z.B. app:defaultValue="READ") b/111316353
  • Sichere Args unterstützt Arrays aller unterstützten Typen b/111487504
  • Sichere Args ignoriert jetzt Unterordner von Ressourcenverzeichnissen. b/117893516
  • Safe Args fügt gegebenenfalls @Override-Annotationen hinzu b/117145301

5. Dezember 2018

WorkManager

WorkManager 1.0.0-alpha12 wurde veröffentlicht. Diese Version enthält einige wichtige API-Änderungen. Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen. Diese Version wird wahrscheinlich als erste Betaversion veröffentlicht. alpha12 enthält auch umfangreiche Aktualisierungen der Dokumentation.

API-Änderungen

  • Mit dem neuen Artefakt work-rxjava2 wird RxWorker eingeführt. Dies ist ein ListenableWorker, das eine Single<Payload> erwartet.
  • Firebase JobDispatcher wird nicht mehr unterstützt, da es demnächst eingestellt wird. Das bedeutet, dass das Artefakt „work-firebase“ im Laufe der Betaphase nicht mehr aktualisiert wird. Wir arbeiten daran, in Zukunft eine Alternative hinzuzufügen.
  • Payload in Result kombiniert. Result ist jetzt eine „siegelte Klasse“ mit drei konkreten Implementierungen, die Sie über Result.success() (oder Result.success(Data)), Result.failure() (oder Result.failure(Data)) und Result.retry() erhalten können. Ihre ListenableFuture-Ergebnisse ergeben jetzt Result statt Payload. Worker haben keine Getter- und Setter-Methoden für die Ausgabe Data. Das ist eine funktionsgefährdende Änderung.
  • Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit) und Constraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit) sowie Varianten wurden hinzugefügt, um das langsame Auslösen von Inhalts-URIs besser zu unterstützen. b/119919774
  • WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration) Variante wurde hinzugefügt. Für diese Methode ist API 26 erforderlich.
  • Die Kotlin-Erweiterungsmethoden Operation.await() und ListenableFuture.await() wurden hinzugefügt.
  • Operation.getException() wurde in Operation.getThrowable() umbenannt. Das ist eine funktionsgefährdende Änderung.
  • Die ContentUriTriggers-Klasse und die Methoden, die darauf verweisen, sind nicht mehr öffentlich verfügbar. Das ist eine funktionsgefährdende Änderung.
  • Die restlichen varargs-Methoden in WorkManager, WorkContinuation und OneTimeWorkRequest wurden entfernt, um die API zu optimieren. Um Build-Probleme zu beheben, können Sie Ihre vorhandenen varargs mit Arrays.asList(...) zusammenfassen. Wir fügen immer noch Versionen jeder Methode mit einem Argument hinzu. Das ist eine funktionsgefährdende Änderung.
  • WorkContinuation.combine(OneTimeWorkRequest, *) Varianten wurden entfernt. Es wurde eine verwirrende API präsentiert. Die vorhandenen combine-Methoden sind verständlicher. Das ist eine funktionsgefährdende Änderung.

Fehlerkorrekturen

  • Pre-Marshmallow-Implementierungen sind jetzt zuverlässiger bei der Wiederherstellung nach dem Beenden eines Prozesses einer bereits laufenden Aufgabe.
  • LiveData, das über observeForever beobachtet wird, wird über WorkManager erfasst. Dies ist ein Backport-Problem einer Korrektur der Raumbibliothek. b/74477406
  • Data.Builder.build() löst jetzt eine Ausnahme aus, wenn das serialisierte Objekt seine maximale Größe überschreitet. Dies ist bisher nur in einem Hintergrundthread der Fall, wenn Sie ihn nicht richtig verarbeiten konnten.
  • Weitere Unterscheidung zwischen angehaltenen und stornierten Arbeiten getWorkInfoById() gibt während des ListenableWorker.onStopped() eine WorkInfo mit der CANCELLED State zurück.
  • null Results als Fehler in ListenableWorker behandeln. b/120362353
  • Spekulative Fehlerbehebung für Shield Tablets mit API 24, die manchmal eine IllegalArgumentException auslöste. b/119484416

Nicht abwärtskompatible API-Änderungen

  • Firebase JobDispatcher wird nicht mehr unterstützt, da es demnächst eingestellt wird. Das bedeutet, dass das Artefakt „work-firebase“ im Laufe der Betaphase nicht mehr aktualisiert wird. Wir arbeiten daran, in Zukunft eine Alternative hinzuzufügen.
  • Payload in Result kombiniert. Result ist jetzt eine „siegelte Klasse“ mit drei konkreten Implementierungen, die Sie über Result.success() (oder Result.success(Data)), Result.failure() (oder Result.failure(Data)) und Result.retry() erhalten können. Ihre ListenableFuture-Ergebnisse ergeben jetzt Result statt Payload. Worker haben keine Getter- und Setter-Methoden für die Ausgabe Data.
  • Die Kotlin-Erweiterungsmethoden Operation.await() und ListenableFuture.await() wurden hinzugefügt.
  • Operation.getException() wurde in Operation.getThrowable() umbenannt.
  • Die ContentUriTriggers-Klasse und die Methoden, die darauf verweisen, sind nicht mehr öffentlich verfügbar.
  • Die restlichen varargs-Methoden in WorkManager, WorkContinuation und OneTimeWorkRequest wurden entfernt, um die API zu optimieren. Um Build-Probleme zu beheben, können Sie Ihre vorhandenen varargs mit Arrays.asList(...) zusammenfassen. Wir fügen immer noch Versionen jeder Methode mit einem Argument hinzu.
  • WorkContinuation.combine(OneTimeWorkRequest, *) Varianten wurden entfernt. Es wurde eine verwirrende API präsentiert. Die vorhandenen combine-Methoden sind verständlicher.

4. Dezember 2018

Zimmer

Raum 2.1.0-alpha03 wurde mit Unterstützung für Koroutinen und mehreren Fehlerkorrekturen freigegeben.

API-Änderungen

  • Für den FTS tokenizer in @Fts3/@Fts4 wird jetzt ein String anstelle einer Enum verwendet. Dadurch können benutzerdefinierte Tokenizer von Room verwendet werden. Integrierte Tokenizer sind in FtsOptions weiterhin als Stringkonstanten definiert. b/119234881

Neue Funktionen

  • Couroutinen: DAO-Methoden können jetzt Sperrenfunktionen sein. Zur Unterstützung von Sperrungsfunktionen in Room wurde ein neues Artefakt veröffentlicht: room-coroutines. b/69474692
  • DAO-Methoden, die mit @Insert, @Delete oder @Update gekennzeichnet sind, unterstützen jetzt ListenableFuture als Rückgabetyp. b/119418331

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem Room fälschlicherweise versucht, einen Konstruktor mit Spalten in der ignoredColumns-Eigenschaft von @Entity zu finden. b/119830714
  • Es wurde ein Fehler behoben, bei dem Room DAO-Methodenparameter in der generierten Implementierung nicht als endgültig markiert hat. b/118015483
  • Es wurde ein Fehler behoben, bei dem der Room-Prozessor abstürzte, wenn bei einer Abfrage mit Sonderzeichen ein Fehler gemeldet wurde. b/119520136
  • Ein Fehler wurde behoben, bei dem Room andere Collection-Implementierungen als Argumente eines IN-Ausdrucks ablehnte. b/119884035
  • Es wurde ein Fehler behoben, bei dem von Room zurückgegebene LiveData-Daten automatisch bereinigt wurden, sodass keine neuen Daten mehr ausgegeben wurden. b/74477406
  • Die Schließsperre von RoomDatabase wurde aktualisiert, um Sperrenkonflikte zu reduzieren. b/117900450

8. Nov. 2018

WorkManager

WorkManager 1.0.0-alpha11 wurde veröffentlicht. Diese Version enthält viele Änderungen, die zur stabilen API unter beta werden. In dieser Version gibt es wichtige API-Änderungen: Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen.

API-Änderungen

  • Mit work-runtime-ktx wird eine neue CoroutineWorker eingeführt.
  • WorkStatus wurde in WorkInfo umbenannt. Alle entsprechenden getStatus-Methodenvarianten wurden in die entsprechende getWorkInfo Varianten. Das ist eine funktionsgefährdende Änderung.
  • ListenableWorker.onStopped() akzeptiert kein boolesches Argument mehr, das angibt, ob WorkRequest abgebrochen wurde. WorkManager macht diese Unterscheidung nicht mehr möglich. Das ist eine funktionsgefährdende Änderung.
  • Paket „androidx.work.test“ wurde in Paket „androidx.work.testing“ umbenannt. Das ist eine funktionsgefährdende Änderung.
  • Setter für Constraints sind nicht mehr Teil der öffentlichen API. Das ist eine funktionsgefährdende Änderung.
  • WorkerParameters.getTriggeredContentUris() und WorkerParameters.getTriggeredContentAuthorities() haben zuvor Arrays zurückgegeben. Jetzt geben diese Methoden Sammlungen zurück. Das ist eine funktionsgefährdende Änderung.
  • ListenableWorker.onStartWork() wurde in ListenableWorker.startWork() umbenannt. Das ist eine funktionsgefährdende Änderung.
  • Der Konstruktor für WorkStatus gehört nicht mehr zur öffentlichen API. Das ist eine funktionsgefährdende Änderung.
  • Configuration.getMaxJobSchedulerID() und Configuration.getMinJobSchedulerID() wurden in Configuration.getMinJobSchedulerId() umbenannt bzw. Configuration.getMaxJobSchedulerId(). Das ist eine funktionsgefährdende Änderung.
  • Der öffentlichen API wurden viele @NonNull-Annotationen hinzugefügt, um die Ergonomie der API zu verbessern.
  • Fügen Sie die WorkManager.enqueueUniqueWork() API hinzu, um eindeutige OneTimeWorkRequests in die Warteschlange zu stellen, ohne eine WorkContinuation erstellen zu müssen.
  • Alle Varianten der Methoden enqueue und cancel für WorkManager geben jetzt einen neuen Operation-Typ zurück. Das ist eine funktionsgefährdende Änderung.
  • Alle Varianten von enqueue akzeptieren keine varargs für WorkRequests mehr. Das ist eine funktionsgefährdende Änderung. Verwende stattdessen Sammlungen. Sie können Arrays.asList() verwenden, um vorhandenen Code zu ändern. Wir haben dies getan, um die API-Oberfläche und die Anzahl der Methoden zu reduzieren.
  • Wenn Sie mehr als einmal versuchen, WorkManager pro Prozess zu initialize, führt dies jetzt zu einem IllegalStateException. Das ist eine funktionsgefährdende Änderung.

Fehlerkorrekturen

  • WorkRequest.Builders im Artefakt work-runtime-ktx verwenden jetzt ListenableWorkers. Damit wird b/117666259 behoben.
  • Die nächste Ausführungszeit für PeriodicWork muss in der Zukunft liegen. Damit wird b/118204399 behoben.
  • Entfernen Sie potenzielle Laufwerks-E/A-Vorgänge, wenn beim Start der App WorkManager verwendet wird. Damit wird b/117796731 behoben.
  • Eine Race-Bedingung in WorkConstraintsTracker wurde korrigiert. Damit wird android-workmanager/issues/56 behoben.

Nicht abwärtskompatible API-Änderungen

  • WorkStatus wurde in WorkInfo umbenannt. Alle entsprechenden getStatus-Methodenvarianten wurden in die entsprechende getWorkInfo Varianten.
  • ListenableWorker.onStopped() akzeptiert kein boolesches Argument mehr, das angibt, ob WorkRequest abgebrochen wurde. WorkManager macht diese Unterscheidung nicht mehr möglich.
  • Paket „androidx.work.test“ wurde in Paket „androidx.work.testing“ umbenannt.
  • Setter für Constraints sind nicht mehr Teil der öffentlichen API.
  • WorkerParameters.getTriggeredContentUris() und WorkerParameters.getTriggeredContentAuthorities() haben zuvor Arrays zurückgegeben. Jetzt geben diese Methoden Sammlungen zurück.
  • ListenableWorker.onStartWork() wurde in ListenableWorker.startWork() umbenannt.
  • Der Konstruktor für WorkStatus gehört nicht mehr zur öffentlichen API.
  • Configuration.getMaxJobSchedulerID() und Configuration.getMinJobSchedulerID() wurden in Configuration.getMinJobSchedulerId() umbenannt bzw. Configuration.getMaxJobSchedulerId().
  • Alle Varianten der Methoden enqueue und cancel für WorkManager geben jetzt einen neuen Operation-Typ zurück.
  • Alle Varianten von enqueue akzeptieren keine varargs für WorkRequests mehr.
  • Wenn Sie mehr als einmal versuchen, WorkManager pro Prozess zu initialize, führt dies jetzt zu einem IllegalStateException.

1. November 2018

Paging

Paging 2.1.0-beta01 wurde ohne Änderungen gegenüber 2.1.0-alpha01 freigegeben.

30. Oktober 2018

Zimmer

Raum 2.1.0-alpha02 wurde mit mehreren Fehlerkorrekturen und einer neuen Funktion veröffentlicht.

Neue Funktionen

  • Unterstützung für Verweise auf eine @DatabaseView in einer @Relation wurde hinzugefügt. b/117680932

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem Room Laufwerks-E/A im Hauptthread ausgeführt wurden, wenn ein Rx-Rückgabetyp abonniert und entfernt wurde. b/117201279
  • Es wurde ein Fehler behoben, bei dem Room für ein Feld in einer Kotlin-Entitätsklasse keinen geeigneten Typkonverter finden konnte. b/111404868
  • Ein Fehler wurde behoben, bei dem Room falschen Code für eine DAO-Schnittstellenimplementierung generiert hat, die eine Kotlin-Standardmethode ohne Argumente enthielt. b/117527454
  • Der SQLite-Grammatikparser von Room wurde aktualisiert. Es wurde ein Leistungsproblem behoben, das zu langen Build-Zeiten führen würde. b/117401230

29. Oktober 2018

Navigation 1.0.0-alpha07 wurde mit Fehlerkorrekturen und API-Änderungen veröffentlicht.

Neue Funktionen

Nicht abwärtskompatible Änderungen

  • Das navigation-testing-ktx-Modul ist in den navigation-testing artifact und wird nicht mehr veröffentlicht.
  • Das Artefakt navigation-testing ist jetzt vom Kotlin-Standard abhängig Bibliothek. Die API wurde geändert, um sie mit Kotlin konsistenter zu gestalten aber Sie können ihn weiterhin für Tests verwenden, die in Java geschrieben sind.
  • In Metadatenmanifesten registrierte Navigationsdiagramme werden nicht mehr unterstützt. b/118355937
  • Aktionen können nicht mehr mit <activity> verknüpft werden. Ziele. aosp/785539

Fehlerkorrekturen

  • In Deeplinks werden Suchparameter jetzt korrekt geparst. b/110057514
  • Bei Aktivitätszielen werden jetzt alle Animationen zum Ein- und Ausblenden korrekt angewendet. b/117145284
  • Absturz behoben, der nach Konfigurationsänderungen bei der Verwendung von benutzerdefinierten Navigatoren. b/110763345

Sichere Argumente

  • Sichere Argumente haben jetzt eine feste Abhängigkeit vom Android-Gradle-Plug-in 3.2.1. b/113167627
  • Es können jetzt Routen für innere Klassen generiert werden. b/117407555
  • Ein Problem beim Generieren von Routen zu einem <include>-Element wurde behoben. Diagramm. b/116542123

12. Oktober 2018

Paging

Paging 2.1.0-alpha01 wurde mit zwei großen Ergänzungen veröffentlicht: Page Dropping und KTX-Erweiterungsbibliotheken für jedes Artefakt. Außerdem wurden mehrere andere API-Änderungen und Fehlerkorrekturen vorgenommen.

API-Änderungen

  • PagedList.Config.Builder.setMaxSize() zur Begrenzung der Anzahl der geladenen Elemente im Arbeitsspeicher hinzugefügt.
  • androidx.paging.Config() wurde als Kotlin-Alternative für PagedList.Config.Builder hinzugefügt.
  • androidx.paging.PagedList() wurde als Kotlin-Alternative für PagedList.Builder hinzugefügt.
  • DataSourceFactory.toLiveData() wurde als Kotlin-Alternative für LivePagedListBuilder hinzugefügt.
  • DataSourceFactory.toObservable() und toFlowable() als Kotlin-Alternativen für RxPagedListBuilder hinzugefügt
  • AsyncPagedListDiffer.addPagedListListener() wurde hinzugefügt, um zu prüfen, ob „PagedList“ ausgetauscht wird. b/111698609
  • PagedListAdapter.onCurrentListChanged() Variante wurde hinzugefügt, die die alte und die neue Liste übergibt. Die vorherige Variante wurde eingestellt.
  • Es wurden PagedListAdapter/AsyncPagedListDiffer.submitList()-Varianten hinzugefügt, die einen zusätzlichen Callback verwenden, der nach dem Differenzieren ausgelöst wird, wenn die Paged-Liste angezeigt wird. Auf diese Weise können Sie einen PagedList-Austausch mit anderen Aktualisierungen der Benutzeroberfläche synchronisieren. b/73781068
  • PagedList.getLoadedCount() wurde hinzugefügt, damit du weißt, wie viele Elemente sich im Arbeitsspeicher befinden. Der Rückgabewert ist immer gleich .size(), wenn Platzhalter deaktiviert sind.

Fehlerkorrekturen

  • Es wurde eine Race-Bedingung behoben, die auftrat, wenn Listen unterschiedlich wiederverwendet werden b/111591017.
  • PagedList.loadAround() gibt jetzt IndexOutOfBoundsException aus, wenn der Index ungültig ist. Zuvor konnte sie mit einer unklaren anderen Ausnahme abstürzen.
  • Problem behoben, bei dem eine extrem kleine anfängliche Ladegröße zusammen mit unveränderten Daten dazu führte, dass kein weiteres Laden von b/113122599 erfolgte.

11. Oktober 2018

WorkManager

WorkManager 1.0.0-alpha10 wird mit Unterstützung für entwicklergesteuerte asynchrone Arbeit veröffentlicht. In dieser Version gibt es wichtige API-Änderungen: Weitere Informationen finden Sie unten im Abschnitt funktionsgefährdende API-Änderungen.

Wir gehen davon aus, dass sich WorkManager in der letzten Phase der Alphaphase befindet. Wir erwarten, dass die API in der Betaversion stabil sein wird. Bitte nehmen Sie sich die Zeit, um uns Feedback über unseren Issue Tracker zu senden.

API-Änderungen

  • Alle vorherigen deprecated-Methoden und -Klassen wurden entfernt, insbesondere der Worker-Standardkonstruktor. Dies ist eine funktionsgefährdende API-Änderung.
  • NonBlockingWorker wurde in ListenableWorker umbenannt. Diese Klasse ist jetzt eine eingeblendete öffentliche Klasse und kann verwendet werden.
    • ListenableWorker bietet Zugriff auf eine abstrakte Methode: ListenableFuture<Payload> onStartWork(), die im Hauptthread aufgerufen wird. Es liegt an Ihnen, die Arbeit asynchron zu starten und zu verarbeiten. Wenn Sie fertig sind, sollten Sie ListenableFuture entsprechend aktualisieren. Referenzimplementierungen von ListenableFuture sind im Paket Futures in alpha02 enthalten (siehe Abschnitt WorkManager).
    • Worker erweitert ListenableWorker und funktioniert weiterhin wie zuvor mit einer abstrakten Result doWork()-Methode.
    • Einige Methoden und Mitglieder wurden von Worker zu ListenableWorker zufällig angeordnet.
    • Wir werden bald Referenzimplementierungen für ListenableWorkers bereitstellen, die Kotlin-Koroutinen verwenden (sobald die stabilen Versionen veröffentlicht werden) und RxJava2.
  • Die Schnittstelle WorkerFactory und die konkrete Implementierung DefaultWorkerFactory wurden zu einer abstrakten Klasse namens WorkerFactory zusammengeführt. Durch die Implementierung wird das auf der Reflexion basierende Standardverhalten für alle vom Nutzer erstellten WorkerFactory-Instanzen als letzte Aktion aufgerufen. Das ist eine funktionsgefährdende Änderung.
  • WorkManager.synchronous() und WorkContinuation.synchronous() sowie alle zugehörigen Methoden wurden entfernt. ListenableFuture<Void> wurde als Rückgabetyp vieler Methoden in der API hinzugefügt. Dies ist eine funktionsgefährdende API-Änderung.
    • Sie können jetzt mithilfe von ListenableFutures synchron abrufen und beobachten. Beispiel: WorkManager.enqueue() wurde verwendet, um void zurückzugeben. wird jetzt ListenableFuture<Void> zurückgegeben. Sie können ListenableFuture.addListener(Runnable, Executor) oder ListenableFuture.get() aufrufen, um Code auszuführen, sobald der Vorgang abgeschlossen ist.
    • Diese ListenableFutures sagen nichts darüber aus, ob der Vorgang erfolgreich war oder fehlgeschlagen ist. dass sie auch fertig waren. Sie müssen trotzdem WorkManager-Methoden verketten, um diese Informationen zu erhalten.
    • cancel()-Aufrufe für diese Objekte werden ignoriert, da sie verwirrend und schwer zu verstehen sind. Brechen Sie den Vorgang oder die daraus resultierende Arbeit ab? Dies ist im Vertrag von Future enthalten.
    • Um die Einheitlichkeit mit den synchronen getStatus*-Methoden zu wahren, haben wir ListenableFuture-Varianten bereitgestellt und die vorhandenen, die LiveData zurückgegeben haben, so umbenannt, dass sie explizit „LiveData“ enthalten. als Teil des Namens enthalten (z. B. getStatusesByIdLiveData(UUID)). Dies ist eine funktionsgefährdende API-Änderung.

Fehlerkorrekturen

  • Das bekannte Problem von alpha09 bezüglich doppelter androidx-annotations.pro-Dateien wurde behoben. Sie können die Problemumgehung aus den vorherigen Versionshinweisen entfernen, indem Sie exclude 'META-INF/proguard/androidx-annotations.pro' aus Ihrer Gradle-Datei löschen.
  • Proguard-Konfigurationen wurden hinzugefügt, um den neuen Worker-Konstruktor beizubehalten. b/116296569
  • Potenzielle NullPointerException in einer Race-Bedingung beheben, bei der die Arbeit REPLACEd war. b/116253486 und b/116677275
  • WorkContinuation.combine() akzeptiert jetzt eine oder mehrere WorkContinuation statt zwei oder mehr. b/117266752

Nicht abwärtskompatible API-Änderungen

  • Alle vorherigen deprecated-Methoden und -Klassen wurden entfernt, insbesondere der Worker-Standardkonstruktor.
  • Die Schnittstelle WorkerFactory und die konkrete Implementierung DefaultWorkerFactory wurden zu einer abstrakten Klasse namens WorkerFactory zusammengeführt.
  • WorkManager.synchronous() und WorkContinuation.synchronous() wurden entfernt.
  • WorkManager.getStatus*()-Methoden geben jetzt ListenableFutures zurück. WorkManager.getStatus*LiveData() gibt LiveDatas zurück.

Futures

Future-Objekte: 1.0.0-alpha02 wird freigegeben.

API-Änderungen

  • Entwickler können jetzt ResolvableFuture und AbstractResolvableFuture als einfache konkrete Implementierungen von ListenableFuture verwenden.

8. Oktober 2018

Zimmer

Raum „2.1.0-alpha01“ wurde freigegeben.

Neue Funktionen

  • FTS: Der Chatroom unterstützt jetzt Entitäten mit einer Zuordnungstabelle FTS3 oder FTS4. Mit @Entity annotierte Klassen können jetzt zusätzlich mit @Fts3 oder @Fts4 annotiert werden, um eine Klasse mit einer Zuordnungstabelle für die Volltextsuche zu deklarieren. FTS-Optionen für weitere Anpassungen sind über die Methoden der Annotation verfügbar. b/62356416
  • Ansichten: Room unterstützt jetzt die Deklaration einer Klasse als gespeicherte Abfrage, auch als Ansicht bezeichnet. Hierzu wird die @DatabaseView-Annotation verwendet. b/67033276
  • Automatischer Wert: Der Raum unterstützt jetzt die Deklaration von mit AutoValue gekennzeichneten Klassen als Entitäten und POJOs. Die Raumanmerkungen @PrimaryKey, @ColumnInfo, @Embedded und @Relation können jetzt in den abstrakten Methoden einer Klasse mit automatischem Wert deklariert werden. Beachten Sie, dass diese Anmerkung auch durch @CopyAnnotations ergänzt werden muss, damit sie von Room richtig verstanden werden. b/62408420
  • Zusätzliche Unterstützung für Rx-Rückgabetypen: Mit @Insert, @Delete oder @Update gekennzeichnete DAO-Methoden unterstützen jetzt Rx-Rückgabetypen Completable, Single<T> und Maybe<T>. b/63317956
  • Unveränderliche Typen mit @Relation: Bisher waren für diesen Raum @Relation-annotierte Felder erforderlich, die festgelegt werden konnten. Jetzt können sie aber auch Konstruktorparameter sein.
  • enableMultiInstanceInvalidation: Ist eine neue API in RoomDatabase.Builder, die die Entwertung mehrerer Instanzen von RoomDatabase unter Verwendung derselben Datenbankdatei ermöglicht. Dieser Mechanismus zur Entwertung mehrerer Instanzen funktioniert auch über mehrere Prozesse hinweg. b/62334005
  • fallbackToDestructiveMigrationOnDowngrade: Ist eine neue API in RoomDatabase.Builder, die die Datenbank bei einem Downgrade automatisch neu erstellt. b/110416954
  • ignoredColumns: Ist eine neue API in der Annotation @Entity, mit der ignorierte Felder nach Name aufgelistet werden können. Nützlich, um übernommene Felder für eine Entität zu ignorieren. b/63522075

API-/Verhaltensänderungen

  • mCallback und mDatabase in RoomDatabase sind jetzt @Deprecated und werden in der nächsten Hauptversion von Room entfernt. b/76109329

Fehlerkorrekturen

  • Es wurden zwei Probleme behoben, bei denen Room von einer beschädigten Datenbank oder einer fehlerhaften Migration während der Initialisierung nicht ordnungsgemäß wiederhergestellt werden konnte. b/111504749 und b/111519144
  • In Room wird jetzt der primäre Konstruktor von Kotlin in Datenklassen verwendet, sodass die Felder nicht als vars deklariert werden müssen. b/105769985

1. Oktober 2018

Raum „2.0.0“ wurde ohne Änderungen gegenüber „2.0.0-rc01“ freigegeben. Paging 2.0.0 wurde mit einer einzigen Fehlerkorrektur veröffentlicht.

Paging

Fehlerkorrekturen

  • Ein Absturz wurde behoben, der bei sehr schnellem Scrollen unter Verwendung von PositionalDataSource und Platzhaltern b/114635383 auftreten konnte.

21. September 2018

Lebenszyklus 2.0.0 wurde mit einer Fehlerkorrektur von 2.0.0-rc01 in ViewModel veröffentlicht.

Lebenszyklus

Fehlerkorrekturen

  • Eine ViewModel-Proguard-Regel wurde behoben, durch die Konstruktoren fälschlicherweise entfernt wurden b/112230489.

20. September 2018

Navigation 1.0.0-alpha06 wurde mit Fehlerkorrekturen und API-Änderungen veröffentlicht.

Neue Funktionen

API-Änderungen

  • Nicht abwärtskompatible Änderung: Die Navigator-Methode navigate() verwendet jetzt einen Navigator.Extras-Parameter.
  • Die getGraph()-Methode von NavController ist jetzt NonNull b/112243286

Fehlerkorrekturen

  • NavigationUI.setupWithNavController() gibt keine Aufrufe mehr frei, wenn er mit Aufrufen einzelner Ziele verwendet wird b/111961977
  • Navigator onSaveState() wird jetzt nur noch einmal aufgerufen b/112627079

Sichere Argumente

  • Die „Directions“-Klassen für Navigationsziele erweitern jetzt die „Directions“-Klasse der übergeordneten Elemente, sofern vorhanden. b/79871405
  • Directions- und Args-Klassen haben jetzt eine nützliche toString()-Implementierung b/111843389.

19. September 2018

WorkManager

WorkManager 1.0.0-alpha09 wurde mit Fehlerkorrekturen, Infrastrukturaktualisierungen und API-Änderungen veröffentlicht.

Bekanntes Problem

Wenn das Problem „Mehr als eine Datei mit betriebssystemunabhängigem Pfad ‚META-INF/proguard/androidx-annotations.pro‘ gefunden wurde“ auftritt, fügen Sie als vorübergehende Problemumgehung Folgendes in Ihre Gradle-Datei ein, während wir das Problem in Alpha 10 beheben:

Cool

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

Kotlin

android {
    packagingOptions {
        exclude("META-INF/proguard/androidx-annotations.pro")
    }
}

Fehlerkorrekturen

  • Eine weitere Korrektur, die für „100 Jobs“ erforderlich war, wurde hinzugefügt. Fehler. b/115560696
  • Es wurden einige Fehler bei Fremdschlüsseleinschränkungen aufgrund von Race-Bedingungen behoben. b/114705286
  • Delegierte ConstraintTrackingWorker.onStopped(boolean)-Aufrufe an die zugrunde liegende Worker. b/114125093
  • Erzwingen Sie die korrekte minimale Backoff-Verzögerung für Firebase JobDispatcher. b/113304626
  • Verbesserte Threading-Garantien innerhalb der Bibliothek.
  • Korrigieren Sie das potenzielle Problem bei der internen Deduplizierung von LiveData.

API-Änderungen

  • Sie können jetzt zur Laufzeit eigene Worker-Instanzen erstellen. Geben Sie dazu eine WorkerFactory als Teil der WorkManager.Configuration an. Die Fallback-Factory ist DefaultWorkerFactory, was dem Verhalten vorheriger WorkManager-Versionen entspricht.
    • Die Standardkonstruktoren für Worker und NonBlockingWorker sind jetzt als veraltet markiert. Verwende den neuen Konstruktor (Worker(Context, WorkerParameters)) und rufe super(Context, WorkerParameters) auf. Bei zukünftigen WorkManager-Versionen wird der Standardkonstruktor entfernt.
  • Wir haben damit begonnen, das neue ListenableFuture-Artefakt intern zu verwenden (ohne Guava-Abhängigkeiten). In zukünftigen Releases werden wir ListenableFutures in die API einführen. Durch diese Änderung kann NonBlockingWorker später wieder eingeblendet werden.
  • Funktion zum Auslösen von Aufgaben mit zeitlicher Festlegung in TestDriver über TestDriver.setInitialDelayMet(UUID) und TestDriver.setPeriodDelayMet(UUID) hinzufügen. b/113360060

Nicht abwärtskompatible Änderungen

  • Die Standardkonstruktoren Worker und NonBlockingWorker wurden eingestellt. Migrieren Sie so bald wie möglich zum neuen Konstruktor. In zukünftigen Versionen wird der Standardkonstruktor entfernt.

27. August 2018

WorkManager

WorkManager 1.0.0-alpha08 wurde mit Fehlerkorrekturen veröffentlicht.

Fehlerkorrekturen

  • WorkManager-Komponenten wurden ausdrücklich als nicht erkannter direkter Start gekennzeichnet, sodass sie beim direkten Start nicht ausgelöst werden. In Zukunft werden wir eine WorkManager-Version bereitstellen, die direkt bootfähig ist. b/112665532
  • Es wurde ein Problem behoben, durch das wiederholte Aufgaben nicht ausgeführt wurden. b/112604021
  • Regelmäßige Aufgaben, die nicht wiederholt ausgeführt wurden (im Zusammenhang mit dem oben genannten Problem), wurde behoben. b/112859683
  • Die Backoff-Richtlinien wurden eingehalten, wenn der App-Prozess bereits ausgeführt wird.
  • Ausnahmemeldungen in Data wurden korrigiert, um anzugeben, dass das Limit 10 KB beträgt.
  • Der Maximalwert von Configuration.setMaxSchedulerLimit(int) wurde auf 50 gesenkt, um eine gewisse Latenz bei der Verarbeitung von JobScheduler zu berücksichtigen. b/112817355

16. August 2018

WorkManager

WorkManager 1.0.0-alpha07 wurde mit Fehlerkorrekturen und kleineren API-Änderungen veröffentlicht.

Fehlerkorrekturen

  • Eine potenzielle SQL-Abfrage mit negativen Grenzwerten, die eine unbegrenzte Anzahl von Ergebnissen zurückgeben konnte, wurde korrigiert.
  • Arbeit, die bereits ausgeführt wurde, bricht nun korrekt alle ausstehenden Kopien dieser Arbeit in anderen Planern ab. Dadurch wurde das Limit von JobScheduler Jobs überschritten. b/111569265
  • ConcurrentModificationException in ConstraintTracker korrigiert. b/112272753
  • Die Rückgabetyp-Annotationen von Data.getBooleanArray(String) und Data.getIntArray(String) wurden in @Nullable statt in @NonNull geändert. b/112275229

API-Änderungen

  • Worker erweitert jetzt die neue Klasse NonBlockingWorker. Dies hat keine Auswirkungen auf die aktuelle Nutzung. In Zukunft wird NonBlockingWorker zu einer vollständig unterstützten Entität für Lösungen für benutzerdefinierte Threading.
  • Die Rückgabetyp-Annotationen von Data.getBooleanArray(String) und Data.getIntArray(String) wurden in @Nullable statt in @NonNull geändert. b/112275229
  • Kotlin-Erweiterungen: Wir haben Map.toWorkData() eingestellt und eine workDataOf(vararg Pair<String, Any?>) auf oberster Ebene hinzugefügt, um die Konsistenz mit vorhandenen APIs zu verbessern.

10. August 2018

Navigation 1.0.0-alpha05 wurde mit Fehlerkorrekturen veröffentlicht.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, der zu einem falschen Backstack-Verhalten führt. b/111907708
  • Fehlerkorrektur in equals() der generierten Args-Klassen. b/111450897
  • Build-Fehler in sicheren Args beheben. b/109409713
  • Konvertierung von Ressourcenkennungen in Java-Namen korrigieren b/111602491
  • Fehlermeldungen zur Null-Zulässigkeit im Plug-in „Safe Args“ wurden behoben.
  • Fügen Sie fehlende Anmerkungen für die Null-Zulässigkeit hinzu.

6. August 2018

AndroidX-Versionen der Release-Versionen Lifecycle, Room und Paging 2.0.0-rc01. Für alle Artefakte von 2.0.0-beta01 ändert sich nichts.

1. August 2018

WorkManager

WorkManager 1.0.0-alpha06 wurde mit Fehlerkorrekturen veröffentlicht.

Fehlerkorrekturen

  • Verhindern Sie bei der Planung von Arbeiten eine Datenbanksperre. b/111801342
  • Es wurde ein Fehler behoben, der dazu führte, dass PeriodicWork im Stromsparmodus nicht planmäßig ausgeführt wird. b/111469837
  • Eine Race-Bedingung beim Verfolgen von Einschränkungen, die WorkManager zum Absturz führen, wurde behoben. googlecodelabs/android-workmanager/issues/56
  • Erstellen Sie eindeutige WorkRequests, wenn Sie WorkRequest.Builder#build() verwenden. b/111408337
  • Aktiviert die Verwendung von RescheduleReceiver nur, wenn es WorkRequests gibt, die sie benötigen. b/111765853

24. Juli 2018

WorkManager

WorkManager 1.0.0-alpha05 wurde mit wichtigen Fehlerkorrekturen und Protokollierungsänderungen veröffentlicht.

API-Änderungen

  • WorkManager.getInstance() ist jetzt mit @NonNull statt mit @Nullable gekennzeichnet. Wenn das Singleton-Element bei manueller Initialisierung nicht richtig initialisiert wird, löst die Methode stattdessen einen IllegalStateException aus. Dies ist ein funktionsgefährdende API-Änderung.
  • Die neue API Configuration.Builder.setMinimumLoggingLevel(int) wurde hinzugefügt, mit der die Ausführlichkeit von WorkManager gesteuert werden kann. Standardmäßig protokolliert WorkManager Log.INFO und höher.
  • Die Signatur von Data.getString() wurde so geändert, dass kein Standardwert mehr verwendet wird (implizit ist dies null). Dies ist eine funktionsgefährdende API-Änderung.
  • Einige Methoden, die nur für die interne Nutzung erforderlich sind, wurden als @hide gekennzeichnet. Dazu gehören der Constraints-Konstruktor, Data.toByteArray() und Data.fromByteArray(byte[]). Dies ist eine funktionsgefährdende API-Änderung.

Fehlerkorrekturen

  • WorkManager führt bei bekannten Fällen der automatischen Sicherung keine Arbeit mehr aus. Dies könnte zu einem Absturz geführt haben. b/110564377
  • Doppelte Planung von PeriodicWorkRequests bei Verwendung von JobScheduler wurde behoben. b/110798652
  • Es wurde ein Problem behoben, bei dem PeriodicWorkRequests nach dem Stromsparmodus des Geräts nicht korrekt ausgeführt wurden. b/111469837
  • Es wurde ein Problem mit anfänglichen Verzögerungen bei der Verwendung von Firebase JobDispatcher behoben. b/111141023
  • Einige potenzielle Race-Bedingungen und Timing-Probleme wurden behoben.
  • BroadcastReceivers, die nicht mehr benötigt wurden, wurden korrekt freigegeben.
  • Die Leistung bei der Neuplanung wurde optimiert, wenn Apps nach dem erzwungenen Schließen neu gestartet werden.
  • TestScheduler.setAllConstraintsMet(UUID) darf vor oder nach Einreihung der angegebenen WorkRequest in die Warteschlange aufgerufen werden. b/111238024

Nicht abwärtskompatible Änderungen

  • WorkManager.getInstance() ist jetzt mit @NonNull statt mit @Nullable gekennzeichnet.
  • Die Signatur von Data.getString() wurde so geändert, dass kein Standardwert mehr verwendet wird (implizit ist dies null).
  • Einige Methoden, die nur für die interne Nutzung erforderlich sind, wurden als @hide gekennzeichnet. Dazu gehören der Constraints-Konstruktor, Data.toByteArray() und Data.fromByteArray(byte[]).

July 19, 2018

Die Navigation 1.0.0-alpha04 und das zugehörige Gradle-Plug-in für sichere Args enthalten eine Reihe von API-Änderungen, Verhaltensänderungen und Fehlerkorrekturen.

API-/Verhaltensänderungen

  • NavHostFragment legt immer das aktuelle Fragment als primäres Navigationsfragment fest, um sicherzustellen, dass untergeordnete Fragmentmanager vor dem äußeren NavController-Element platziert werden. b/111345778

Sichere Argumente

  • Nicht abwärtskompatible Änderung: app:type wurde zu app:argType geändert, um Konflikte mit anderen Bibliotheken wie ConstraintLayout 2.0.0-alpha1 b/111110548 zu vermeiden.
  • Fehlermeldungen von sicheren Args sind jetzt anklickbar b/111534438
  • Die Args-Klassen bestätigen jetzt, dass NonNull-Attribute tatsächlich nicht null sind. b/111451769
  • Zusätzliche NonNull-Annotationen wurden den von NavDirections und Args generierten Klassen b/111455455 b/111455456 hinzugefügt.

Fehlerkorrekturen

  • Ein Problem mit der Schaltfläche "Zurück" des Systems nach einem Deeplink zu einem Fragmentziel wurde behoben b/111515685.

12. Juli 2018

Die Navigation 1.0.0-alpha03 und das zugehörige Gradle-Plug-in für sichere Args enthalten eine Reihe von API-Änderungen, Verhaltensänderungen und Fehlerkorrekturen.

API-/Verhaltensänderungen

  • Eine NavigationUI.setupWithNavController-Methode für die Toolbar wurde hinzugefügt: b/109868820
  • Die NavigationUI.setupWithNavController-Methode für "CollapsingToolbarLayout" wurde hinzugefügt: b/110887183
  • popBackStack() gibt jetzt „false“ zurück, wenn der Back Stack leer ist oder die angegebene Ziel-ID sich nicht im Back Stack befindet. b/110893637
  • FragmentNavigator ignoriert nun Navigationsvorgänge, nachdem FragmentManager den Status gespeichert hat, sodass die Ausnahmen "Diese Aktion kann nach onSaveInstanceState nicht ausgeführt werden können" vermieden werden b/110987825.

Sichere Argumente

  • Nicht abwärtskompatible Änderung:Nicht alphanumerische Zeichen in Aktions- und Argumentnamen werden in den Namen der entsprechenden NavDirections-Methoden durch die Camel-Case-Schreibweise ersetzt. <ph type="x-smartling-placeholder">
      </ph>
    • Beispiel: DemoController.index wird zu setDemoControllerIndex b/79995048
    • Beispiel: action_show_settings wird zu actionShowSettings b/79642240
  • Nicht abwärtskompatible Änderung:Argumente werden jetzt standardmäßig als ungleich null betrachtet. Fügen Sie app:nullable="true" b/79642307 hinzu, um Nullwerte für String- und parzellierbare Argumente zuzulassen.
  • Sie können jetzt app:type="long" mit Standardwerten im Format „123L“ verwenden. b/79563966
  • Ab jetzt werden abparbare Argumente unterstützt, bei denen ein vollständig qualifizierter Klassenname für app:type verwendet wird. Der einzige unterstützte Standardwert ist "@null" b/79563966
  • Args-Klassen implementieren jetzt equals() und hashCode() b/79642246
  • Das Plug-in "Safe Args" kann jetzt auf Bibliotheksprojekte angewendet werden b/80036553
  • Das Plug-in "Safe Args" kann jetzt auf Feature-Projekte angewendet werden b/110011752

Fehlerkorrekturen

  • Probleme beim Navigieren während Fragment-Lebenszyklusmethoden b/109916080 behoben
  • Probleme beim mehrmaligen Navigieren durch verschachtelte Grafiken behoben. b/110178671
  • Probleme bei der Verwendung von setPopUpTo mit dem ersten Ziel im Diagramm b/109909461 behoben
  • Ein Problem wurde behoben, durch das alle app:defaultValue-Werte als Strings b/110710788 übergeben wurden.
  • Aapt2 im Paket mit Android-Gradle-Plug-in 3.2 Beta 01 fügt jetzt Keep-Regeln für jedes android:name-Attribut in den Navigations-XML-Dateien hinzu. b/79874119
  • Ein Speicherleck wurde behoben, das beim Ersetzen des standardmäßigen FragmentNavigator b/110900142 aufgetreten ist.

2. Juli 2018

AndroidX-Versionen der Release-Versionen Lifecycle, Room und Paging 2.0.0-beta01.

Lebenszyklus

Fehlerkorrekturen

  • Die LifecycleObserver-Proguard-Regel wurde korrigiert, sodass nur Implementierungen und keine Subschnittstellen beibehalten werden. b/71389427
  • Die ViewModel-Proguard-Regeln wurden korrigiert, um Verschleierung und Verkleinerung zu ermöglichen.

Zimmer

API-/Verhaltensänderungen

  • RoomDatabase.Builder.setQueryExecutor() wurde hinzugefügt, um die Anpassung des Ausführungsorts von Abfragen zu ermöglichen
  • RxJava2-Observable-Unterstützung hinzugefügt
  • Generierte DAO- und Datenbankimplementierungen sind jetzt endgültig

Fehlerkorrekturen

  • Klassen-/Feldnamen in „Getter für Feld nicht finden“ angeben Fehler b/73334503
  • Die Abwärtskompatibilität von RoomOpenHelper mit älteren Versionen von Room b/110197391 wurde behoben.

Paging

Fehlerkorrekturen

  • Problem behoben, bei dem Inhalte in einigen vorangestellten Fällen nicht mehr angezeigt wurden (Platzhalter deaktiviert, PositionalDataSource) b/80149146
  • (Bereits in 1.0.1 veröffentlicht) Abstürze, bei denen PagedListAdapter und AsyncPagedListDiffer keine Verschiebungsereignisse signalisierten, wurden behoben. b/110711937

26. Juni 2018

Paging

Paging 1.0.1 wurde mit einer einzigen Fehlerkorrektur in runtime veröffentlicht. Aus Gründen der Stabilität empfehlen wir dringend, 1.0.1 zu verwenden. Das Paging von RxJava2 1.0.1 wurde ebenfalls veröffentlicht und ist identisch mit 1.0.0-rc1.

Fehlerkorrekturen

  • Abstürze, bei denen PagedListAdapter und AsyncPagedListDiffer keine Verschiebungsereignisse signalisiert haben, wurden behoben. b/110711937

WorkManager

WorkManager 1.0.0-alpha04 wurde veröffentlicht.

Fehlerkorrekturen

  • PeriodicWorkRequests werden jetzt korrekt neu geplant, wenn die AlarmManager-basierte Implementierung verwendet wird.

  • Ein möglicher ANR-Fehler beim Verschieben aller Worker nach einem erzwungenen Beenden oder einem Neustart wurde behoben. b/110507716

  • Verschiedene WorkManager-APIs wurden um Anmerkungen zur Null-Zulässigkeit hinzugefügt. b/110344065

  • Nicht abgefangene Ausnahmen protokollieren, die während der Worker-Ausführung auftreten. b/109900862

  • destruktive Datenbankmigrationen sind zulässig, falls Sie ein Rollback auf eine ältere Version von WorkManager durchführen. b/74633270

  • Ein Migrationsabsturz beim Erstellen doppelter impliziter Tags wurde behoben. Dies ist ein sehr seltenes Problem, das nur aufgetreten ist, wenn Sie selbst dasselbe implizite Tag-Format verwendet haben.

19. Juni 2018

Zimmer

Raum „1.1.1“ wurde freigegeben. Dieser Release ist mit Raum 1.1.1-rc1 identisch.

WorkManager

WorkManager 1.0.0-alpha03 wurde veröffentlicht.

Fehlerkorrekturen

  • Eine Race-Bedingung in der AlarmManager-basierten Implementierung wurde behoben. b/80346526.

  • Doppelte Jobs bei Verwendung von JobScheduler nach einem Geräteneustart wurden behoben.

  • Jobs mit Inhalts-URI-Triggern bleiben jetzt auch nach einem Neustart bestehen. b/80234744

  • Aktualisierungen der Dokumentation b/109827628, b/109758949, b/80230748

  • Ein Absturz beim erneuten Einreihen einer WorkRequest in die Warteschlange wurde behoben. b/109572353.

  • Die Kotlin-Compiler-Warnungen bei Verwendung der work-runtime-ktx-Abhängigkeit wurden behoben.

  • WorkManager verwendet jetzt Room-Version 1.1.1-rc1.

API-Änderungen

  • getStatusesSync(), die synchrone Version von WorkContinuation.getStatuses(), wurde hinzugefügt.

  • Worker kann zwischen einer vom Nutzer initiierten Kündigung und einer vorübergehenden vom Betriebssystem angeforderten Beendigung unterscheiden. Worker.isStopped() gibt true zurück, wenn eine Art von Stopp angefordert wurde. Worker.isCancelled() gibt true zurück, wenn die Arbeit explizit abgebrochen wurde. b/79632247

  • Unterstützung für JobParameters#getNetwork() auf API 28 hinzugefügt. Dies wird über Worker.getNetwork() bereitgestellt.

  • Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) wurde hinzugefügt, damit Sie erzwingen können, wie viele Jobs an JobScheduler oder AlarmManager gesendet werden können. So wird verhindert, dass WorkManager alle verfügbaren JobScheduler-Slots belegt.

  • Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) wurde hinzugefügt, mit dem ein Bereich von JobScheduler-Job-IDs definiert werden kann, die für WorkManager sicher sind. b/79996760

  • Worker.getRunAttemptCount() gibt die aktuelle Anzahl von Ausführungen für eine bestimmte Worker zurück. b/79716516

  • Mit WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork) können Sie eindeutige PeriodicWorkRequests in die Warteschlange stellen. b/79600647

  • WorkManager.cancelAllWork() bricht alle Workers ab. Bibliotheken, die von WorkManager abhängig sind, können abfragen, wann diese Methode zuletzt aufgerufen wurde. Dazu wird WorkManager.getLastCancelAllTimeMillis() zur zusätzlichen Bereinigung des internen Status verwendet.

  • WorkManager.pruneWork() wurde hinzugefügt, um abgeschlossene Jobs aus der internen Datenbank zu entfernen. b/79950952, b/109710758

Änderungen im Verhalten

  • Es wurde ein implizites Tag für alle WorkRequest hinzugefügt. Dies ist der vollständig qualifizierte Klassenname für die Worker. Dadurch können Sie WorkRequests ohne tags entfernen oder wenn id nicht verfügbar ist. b/109572351

Nicht abwärtskompatible Änderungen

  • Worker.WorkerResult wurde in Worker.Result umbenannt.

  • Worker.onStopped hat jetzt einen zusätzlichen isCancelled-Parameter, der auf true gesetzt wird, wenn Worker explizit abgebrochen wurde.

7. Juni 2018

Die Navigation „1.0.0-alpha02“ wurde veröffentlicht.

Änderungen im Verhalten

  • FragmentNavigator verwendet jetzt setReorderingAllowed(true). b/109826220

  • Navigation URLDecodiert jetzt Argumente, die von Deeplinks-URLs geparst wurden. b/79982454

Fehlerkorrekturen

  • Ein IllegalStateException-Fehler beim Aufrufen von Navigation von Fragment-Lebenszyklusmethoden wurde behoben. b/79632233

  • Die Navigation hängt jetzt von der Support Library 27.1.1 ab, um Flackern bei der Verwendung von Animationen zu beheben. b/80160903

  • Problem mit IllegalArgumentException bei Verwendung von "defaultNavHost="true" behoben als untergeordnetes Fragment. b/79656847

  • Ein StackOverflowError bei Verwendung von NavDeepLinkBuilder wurde behoben. b/109653065

  • Ein IllegalArgumentException beim Zurückkehren zu einer verschachtelten Grafik wurde behoben. b/80453447

  • Ein Problem mit überlappenden Fragmenten bei Verwendung von launchSingleTop wurde behoben. b/79407969

  • Die Navigation erstellt jetzt den richtigen synthetischen Back-Stack für verschachtelte Grafiken. b/79734195

  • NavigationUI hebt jetzt das richtige Element hervor, wenn ein verschachteltes Diagramm als MenuItem verwendet wird. b/109675998

API-Änderungen

  • Das Attribut clearTask für Aktionen und die zugehörige API in NavOptions wurde eingestellt. b/80338878

  • Das Attribut launchDocument für Aktionen und die zugehörige API in NavOptions wurde eingestellt. b/109806636

24. Mai 2018

WorkManager 1.0.0-alpha02 wurde veröffentlicht.

WorkManager

Fehlerkorrekturen

  • NullPointerException in State.isFinished() behoben. b/79550068

  • Es wurde ein Problem behoben, durch das Workers auf Application.onCreate() verschoben wurden. b/79660657

  • Es wurde ein Problem behoben, bei dem Sie mehr Arbeiten planen konnten, als vom Betriebssystem zugelassen sind. b/79497378

  • Die Bereinigung von Wakelocks, die mit Workers verknüpft sind, wurde in den Hintergrundthread verschoben.

  • Die AlarmManager-Implementierung wird jetzt korrekt bereinigt, wenn alle ausstehenden Arbeiten abgeschlossen sind.

  • Bereinigungs-SQL-Abfragen, die nicht englische Sprachen betrafen, wurden behoben. b/80065360

  • Unterstützung für floats in Data hinzugefügt. b/79443878

  • Data.Builder.putAll() gibt jetzt eine Instanz von Builder zurück. b/79699162

  • Weitere Javadoc-Funktionen und Fehlerbehebungen finden Sie in der Dokumentation. b/79691663

API-Änderungen

  • Worker können reagieren, wenn sie angehalten wurden. Mit Worker.isStopped() kann geprüft werden, ob eine Worker angehalten wurde. Mit Worker.onStopped() können einfache Bereinigungsvorgänge ausgeführt werden.

  • Die Worker.getTags() API gibt eine Set von Tags zurück, die mit Worker verknüpft sind.

  • javax.time.Duration-Überlastungen für APIs hinzugefügt, die eine Kombination aus Dauer und TimeUnits nehmen. Dieser wird von @RequiresApi(26) geschützt.

  • WorkManager Erweiterungen wurden aus dem Paket „androidx.work.ktx“ in das Paket „androidx.work“ verschoben. Die alten Erweiterungen werden nicht mehr unterstützt und in einer zukünftigen Version entfernt.

  • Configuration.withExecutor() wurde verworfen. Verwende stattdessen Configuration.setExecutor().

16. Mai 2018

Paging von RxJava2 1.0.0-rc1 und Raum 1.1.1-rc1 wurden freigegeben. Wir sehr empfehlen, bei Migrationen den Raum 1.1.1-rc1 statt 1.1.0 zu verwenden.

Zimmer

Ein Fehler wurde behoben, bei dem Room die Initialisierung der Migration nach der Migration nicht richtig verarbeitete b/79362399.

Paging

Paging rxjava2 wird auf Releasekandidat verschoben, ohne Änderungen gegenüber dem ersten Alpha.

8. Mai 2018

Paging 1.0, Navigation and WorkManager Alphas, Room 1.1, AndroidX

Paging 1.0.0 und Raum 1.1.0 werden freigegeben. mit Alphaversionen für zwei neue Architekturkomponenten: Navigation und WorkManager.

„Seitenumbruch“ und „Raum“ haben seit den letzten Releasekandidaten keine Änderungen gegeben.

Neue Bibliothek: Navigation

Die Navigation bietet ein Framework für In-App-Entwicklungen. Navigation. Diese erste Version ist 1.0.0-alpha01.

Neue Bibliothek: WorkManager

WorkManager vereinfacht die Planung und Ausführung von garantierten und einschränkungssensitiven Hintergrundarbeit. Diese erste Version ist 1.0.0-alpha01

AndroidX

Architekturkomponenten werden in AndroidX integriert, darunter aktualisierte Paketnamen, Artefaktnamen und Abhängigkeiten von anderen AndroidX-Bibliotheken. Diese werden unter Version 2.0.0-alpha1 veröffentlicht und können gemeinsam mit anderen AndroidX-Bibliotheken

Kotlin-Erweiterungen

ViewModel, ReactiveStreams und Sqlite (früher „Database“-Komponente von Room) Im Rahmen des AndroidX-Alpharelease wurden Kotlin-Erweiterungsbibliotheken hinzugefügt. In Navigation und WorkManager enthalten -ktx-Module. Jede dieser Optionen Erweiterungsmodule finden Sie unter Komponenten hinzufügen.

2. Mai 2018

  • Raum 1.1.0-Releasekandidat
  • Raum „1.1.0-rc1“ wurde freigegeben.

Fehlerkorrekturen

  • Der Chatroom ist jetzt mit Kotlin 1.2.40 kompatibel. b/78328708

19. April 2018

Versionskandidaten für Seitenumbruch

Seitenumbruch 1.0.0-rc1 und Raum 1.1.0-beta3 werden freigegeben.

Paging

Es sind keine weiteren bekannten Probleme oder neuen Funktionen geplant für den Paging 1.0.0-Release. Führen Sie ein Upgrade Ihrer Projekte durch, um 1.0.0-rc1 zu verwenden und hilf uns beim Kampftest, damit wir einen steinharten 1.0.0 versenden können.

In diesem Release gibt es keine Änderungen. Er ist mit 1.0.0-beta1 identisch.

Zimmer

Fehlerkorrekturen

  • Kompilierungsfehler beheben, wenn ein Kotlin-POJO auf eine Beziehungsentität verweist, die wurde in Java definiert: b/78199923

5. April 2018

Raum 1.1.0-beta2, Paging 1.0.0-beta1 und Paging RxJava 1.0.0-alpha1 wurden veröffentlicht.

Paging ist für kurze Zeit in der Betaphase, bevor der Kandidaten freigegeben wird. Wir planen keine weiteren API-Änderungen für Paging 1.0 und die Messlatte für API-Änderungen sind sehr hoch.

Alpha RxJava2-Unterstützung für Paging wird als separates optionales Modul veröffentlicht (android.arch.paging:rxjava2:1.0.0-alpha1) und wird vorübergehend separat versioniert, bis sich dies stabilisiert.

Diese neue Bibliothek bietet eine RxJava2-Alternative zu LivePagedListBuilder, mit der Sie Observable und Flowable mit Scheduler statt Executor:

Kotlin

val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50)
        .setFetchScheduler(myNetworkScheduler)
        .buildObservable()

Java

Observable<PagedList<Item>> pagedItems =
        RxPagedListBuilder(myDataSource, /* page size */ 50)
                .setFetchScheduler(myNetworkScheduler)
                .buildObservable();

Paging

Neue Funktionen

  • RxPagedListBuilder wird über das neue Artefakt android.arch.paging:rxjava2 hinzugefügt.

API-Änderungen

  • API-Änderungen zur Verdeutlichung der Rolle von Executors in Buildern:

    • setBackgroundThreadExecutor() wurde in setFetchExecutor() umbenannt (in PagedList.Builder und LivePagedListBuilder)

    • setMainThreadExecutor() wurde in setNotifyExecutor() (in PagedList.Builder) umbenannt.

  • PagedList.mCallbacks Mitglied ist jetzt privat.

Fehlerkorrekturen

  • LivePagedListBuilder löst den anfänglichen PagedList-Ladevorgang für den angegebenen Executor aus statt des Arch Components IO-Thread-Pools.

  • Das Verhalten bei der Entwertung in internen DataSource-Wrappern (zur Implementierung von DataSource.map, sowie durch Platzhalter deaktiviertes PositionalDataSource Laden) b/77237534

Zimmer

Fehlerkorrekturen

  • Ein kritischer Fehler in den Implementierungen von Rx Single und Maybe des Raums wurde behoben. würde die Abfrage vorzeitig wiederverwenden, was zu Problemen führt, wenn Sie mehr als 1 in die zurückgegebenen Single- oder Maybe-Instanzen ein. b/76031240

  • RoomDatabase.clearAllTables VACUUM legt die Datenbank nicht fest, wenn sie aufgerufen wird innerhalb einer Transaktion. b/77235565

21. März 2018

Raum 1.1.0-beta1, Paging 1.0.0-alpha7 und Lebenszyklen 1.1.1 wurden freigegeben.

Zimmer

API-Änderungen

Fehlerkorrekturen

  • RoomDatabase.clearAllTables versucht nun, Speicherplatz an das Betriebssystem zurückzugeben, indem ein WAL-Checkpoint festgelegt und die Datenbank VACUUMgesteuert wird.

  • @RawQuery akzeptiert jetzt jedes Pojo für die observedEntities-Eigenschaft, sofern das Pojo über seine Embedded-Felder oder Relations auf eine oder mehrere Entitäten verweist. b/74041772

  • Paging: Die DataSource-Implementierung von Room verarbeitet jetzt Abhängigkeiten aus mehreren Tabellen (wie Beziehungen und Joins). Bisher lösten diese keine neuen Ergebnisse aus oder konnten nicht kompiliert werden. b/74128314

Lebenszyklen

Nur eine kleine Änderung: android.arch.core.util.Function wurde von arch:runtime nach arch:common verschoben. Dadurch kann es ohne Laufzeitabhängigkeit verwendet werden, z.B. in paging:common unten.

lifecycle:common ist eine Abhängigkeit von lifecycle:runtime. Diese Änderung wirkt sich also nicht direkt auf lifecycle:runtime aus, sondern nur auf Module, die wie Paging direkt von lifecycle:common abhängen.

Paging

Paging 1.0.0-alpha7 wird zusammen mit den Lebenszyklen 1.1.1 veröffentlicht. Da die Paginierung von Alpha7 von der oben genannten Verschiebung der Function-Klasse abhängt, müssen Sie die lifecycle:runtime-Abhängigkeit auf android.arch.lifecycle:runtime:1.1.1 aktualisieren.

Paging alpha7 wird voraussichtlich als letzte Version verfügbar sein, bevor die Funktion zur Paging-Funktion in der Betaversion verfügbar ist.

API-Änderungen

  • DataSource.LoadParams-Objekte haben jetzt einen öffentlichen Konstruktor und DataSource.LoadCallback-Objekte sind jetzt abstrakt. Dies ermöglicht das Wrapping eines DataSource-Objekts oder das direkte Testen eines DataSource-Objekts mit einem simulierten Callback. b/72600421
  • Mapper für DataSource und DataSource.Factory <ph type="x-smartling-placeholder">
      </ph>
    • Mit map(Function<IN,OUT>) können Sie Ergebnisse, die von einem DataSource geladen wurden, transformieren, zusammenfassen oder dekorieren.
    • mapByPage(<List<IN>,List<OUT>>) aktiviert dasselbe für die Batchverarbeitung (z.B. wenn aus SQL geladene Elemente zusätzlich eine separate Datenbank abfragen müssen, was im Batch möglich ist).
  • PagedList#getDataSource() wurde als praktische Methode hinzugefügt b/72611341
  • Alle verworfenen Klassen wurden aus der API entfernt, einschließlich der Überreste des Pakets recyclerview.extensions und des LivePagedListProvider.
  • DataSource.Factory wird von einer Schnittstelle in eine abstrakte Klasse geändert, um Kartenfunktionen zu aktivieren.

Fehlerkorrekturen

  • Die Builder wurden zu endgültig geändert. b/70848565
  • Die Implementierung des Raums DataSource wurde jetzt korrigiert, um Anfragen an mehrere Tabellen zu verarbeiten. Diese Korrektur ist in Raum 1.1.0-beta1 enthalten, siehe oben.
  • Es wurde ein Fehler behoben, bei dem BoundaryCallback.onItemAtEndLoaded für PositionalDataSource nicht aufgerufen wurde, wenn Platzhalter aktiviert und ist die Gesamtgröße genau ein Vielfaches der Seitengröße.

2. März 2018

Raum „1.1.0-alpha3“ wurde freigegeben. Dies ist die letzte geplante Alphaversion für Raum 1.1.0.

API-Änderungen

  • addObserver und removeObserver von UngültigkeitTracker -Methoden sind jetzt synchron und müssen in einem Nicht-UI-Thread aufgerufen werden. Dies verhindert einige Race-Bedingungen bei der Beobachtung von Tabellen.

  • Für RoomDatabase gibt es eine neue clearAllTables()-Methode , die den gesamten Tabelleninhalt kürzt. b/63807999

  • SupportSQLiteQuery hat jetzt eine getArgCount()-Methode, die die Zahl zurückgibt von Suchparametern. b/67038952

Fehlerkorrekturen

  • @RawQuery wird jetzt ordnungsgemäß für Paging-Abfragen unterstützt. b/72600425

  • Die generierten Dao-Klassen werden jetzt korrekt benannt, um Namenskonflikte zu vermeiden, wenn Zwei oder mehr Dao-Schnittstellen sind innere Klassen im selben Paket und haben die mit demselben Namen. b/73536380

  • Allgemeine Feldtypen in Pojos werden ordnungsgemäß als Mitglied der erweiterten . b/73534868

  • Abfrageparameter in Dao-Schnittstellen, die von der Abhängigkeit übernommen werden Artefakte jetzt ordnungsgemäß geparst. b/68118746

  • Bei Abfragen, die für @Relations generiert wurden, wird nun ordnungsgemäß ein Escapezeichen für die Feldnamen verwendet. b/70925483

27. Februar 2018

Paging 1.0.0-alpha6 wird zusammen mit der Support Library-Version 27.1.0 veröffentlicht. ListAdapter und einige zugehörige Klassen wurden aus der Paging-Bibliothek direkt zu Recyclerview verschoben. Dies gilt auch für einige Umbenennungen, um die Funktion bestimmter Klassen klarer zu machen. Diese Alphaversion von Paging ist wahrscheinlich die letzte mit wesentlichen funktionsgefährdenden Änderungen an der API.

API-Änderungen

  • In „recyclerview-v7“ verschobene Klassen: <ph type="x-smartling-placeholder">
      </ph>
    • ListAdapter
  • Die Klassen wurden umbenannt und in „recyclerview-v7“ verschoben: <ph type="x-smartling-placeholder">
      </ph>
    • ListAdapterHelper -> AsyncListDiffer
    • ListAdapterConfig -> AsyncDifferConfig
    • DiffCallback -> DiffUtil.ItemCallback
  • In „paging-runtime“ umbenannte Klassen: <ph type="x-smartling-placeholder">
      </ph>
    • PagedListAdapterHelper -> AsyncPagedListDiffer

Die verschobenen Klassen waren unabhängig von der Paging Library neben RecyclerView nützlich. Das bedeutet, dass sie ohne Paging-Alphaversion verwendet werden können, aber auch bedeutet, dass Apps, die Paging verwenden, gleichzeitig auf Alpha 6 und Support Library 27.1.0 aktualisiert werden müssen.

** Migrationsanleitung für Paging Alpha6: **

  • Paging- und Recyclerview-Abhängigkeiten auf android.arch.paging:runtime:1.0.0-alpha6 und com.android.support:recyclerview-v7:27.1.0 aktualisieren <ph type="x-smartling-placeholder">
      </ph>
    • Diese müssen gleichzeitig erfolgen, da ListAdapter von Paging nach RecyclerView verschoben wurde.
  • Alle Verweise von ListAdapterHelper auf AsyncListDiffer aktualisieren <ph type="x-smartling-placeholder">
      </ph>
    • getItem(index)/getItemCount() wurde zugunsten des expliziteren Musters getCurrentList().getItem(index) und getCurrentList().size() entfernt.
  • Alle Verweise von ListAdapterConfig auf AsyncDifferConfig aktualisieren
  • Alle Verweise von DiffCallback auf DiffUtil.IttemCallback aktualisieren
  • Alle Verweise von PagedListAdapterHelper auf AsyncPagedListDiffer aktualisieren
  • Verweise von setList() auf submitList() aktualisieren <ph type="x-smartling-placeholder">
      </ph>
    • umbenannt, um den asynchronen Charakter der Listenunterschiede zu verdeutlichen

Fehlerkorrekturen

  • Das Übergeben einer falschen Anfangsposition an den anfänglichen Ladevorgang bei Platzhaltern wurde behoben. deaktiviert sind. b/73513780

15. Februar 2018

Raum „1.1.0-alpha2“ wurde freigegeben.

Neue Funktionen

  • Room unterstützt jetzt das Öffnen einer Datenbank im Write-Ahead-Logging-Modus. In diesem Modus blockieren Ihre Schreibvorgänge nicht mehr Ihre Leseabfragen. Obwohl mehr Arbeitsspeicher verbraucht (aufgrund mehrerer Verbindungen). Dieser Modus ist normalerweise schneller. Standardmäßig verwendet Room WAL, wenn das Gerät mindestens API 16 ist und es ist kein Gerät mit wenig Arbeitsspeicher. Sie können dieses Verhalten mithilfe der Methode setJournalMode() für RoomDatabase.Builder. b/67757002

  • Guava-Support: In Chatrooms können jetzt Guava zurückgegeben werden. Optional<T> oder ListenableFuture<T> in DAO-Abfragen. Wenn Sie ListenableFuture<T> verwenden möchten, Du musst guava Artefakt aus Chatroom importieren (android.arch.persistence.room:guava:1.1.0-alpha2)

  • Der Chatroom unterstützt jetzt die Rückgabe von java.util.Optional<T> aus DAO Abfragen.

  • Schnittstellenmethoden mit Standardimplementierungen werden jetzt in @Transaction-Methoden in DAO-Klassen. Dies funktioniert sowohl für Java 8 als auch Kotlin. b/72416735

Fehlerkorrekturen

  • Konstruktoren mit @Relation verursachen keinen Kompilierungsfehler, wenn einen weiteren Konstruktor, der verwendet werden kann. b/72884434

  • Tabellennamen, die in den Methoden @Query mit ' maskiert wurden, werden jetzt korrekt maskiert. für den Entwertungs-Tracker. b/72366965

  • In Room werden jetzt die Kotlin-Anmerkungen @Metadata verwendet, um die Klassenstruktur zu lesen während der Annotationsverarbeitung. Das heißt, selbst wenn ein Pojo von einem Abhängigkeit, können die Namen der Konstruktorparameter ordnungsgemäß gelesen werden. b/67181813

  • Ein Problem mit der Suche nach Downgrade-Migrationspfaden wurde behoben. b/72153525

  • Nicht standardmäßige Spaltentypen werden jetzt bei der Migration von einer vorhandene Datenbank in Room um. b/71953987

  • Der Chatroom verarbeitet nun dauerhafte boolean?-Felder in Kotlin-Klassen nun korrekt. b/72786402

22. Januar 2018

Die Lebenszyklen 1.1.0, Raum 1.1.0-alpha1 und Paging 1.0.0-alpha5 werden freigegeben.

Lebenszyklus 1.1.0

Änderungen an der Verpackung

Neue, viel kleinere Abhängigkeiten sind jetzt verfügbar:

  • android.arch.lifecycle:livedata:1.1.0
  • android.arch.lifecycle:viewmodel:1.1.0

API-Änderungen

  • Die veralteten LifecycleActivity und LifecycleFragment wurden entfernt. Bitte verwenden Sie FragmentActivity, AppCompatActivity oder unterstützen Fragment.
  • @NonNull Anmerkungen wurden ViewModelProviders und ViewModelStores hinzugefügt
  • Der ViewModelProviders-Konstruktor wurde verworfen. Verwenden Sie bitte direkt seine statischen Methoden
  • ViewModelProviders.DefaultFactory wurde eingestellt – bitte ViewModelProvider.AndroidViewModelFactory verwenden
  • Die statische Methode ViewModelProvider.AndroidViewModelFactory.getInstance(Application) wurde hinzugefügt, um eine statische Factory, die zum Erstellen von ViewModel- und AndroidViewModel-Instanzen geeignet ist.

Raum 1.1.0-alpha1

Neue Funktionen

  • RawQuery: Diese neue API ermöglicht es @Dao-Methoden, die SQL als Abfrageparameter zu empfangen. b/62103290, b/71458963
  • fallBackToDestructiveMigrationsFrom: Diese neue API in RoomDatabase.Builder ermöglicht Detaillierte Kontrolle darüber, von welchen Startschemaversionen die destruktiven Migrationen ausgeführt werden zulässig (im Vergleich zu „fallbackToDestructiveMigration“) b/64989640
  • Room unterstützt jetzt nur neuere Paging APIs (Alpha-4+). Die eingestellten LivePagedListProvider Wenn Sie die neue Alphaversion von „Raum“ verwenden möchten, müssen Sie Paging verwenden alpha-4 oder höher und wechsle von LivePagedListProvider zu LivePagedListBuilder, falls du das noch nicht getan hast.

Fehlerkorrekturen

  • Verbesserte Unterstützung für Kotlin Kapt-Typen. b/69164099
  • Die Reihenfolge der Felder macht das Schema nicht mehr entwerten. b/64290754

Paging 1.0.0-alpha5

Fehlerkorrekturen

  • Fehler beim Laden von Seiten bei deaktivierten Platzhaltern beheben b/70573345
  • Zusätzliches Logging zum Aufspüren des IllegalArgumentException-Fehlers b/70360195 (und spekulative Korrektur im Raum)
  • Fehlerkorrekturen für den Javadoc-Beispielcode b/70411933 und b/71467637

11. Dezember 2017

Paging alpha4-1 wurde freigegeben. Dies ist eine kleine Fehlerbehebungsversion für Paging Alpha 4.

Fehlerkorrekturen

7. Dezember 2017

Paging alpha4 wurde mit erheblichen Änderungen und Ergänzungen veröffentlicht, hauptsächlich die sich auf Netzwerk-, Netzwerk- und Datenbankanwendungsfälle konzentriert.

API-Änderungen

  • DataSource ist jetzt eine asynchrone API, um das Paging direkt aus dem Netzwerk zu vereinfachen:

    • Ein einziger Einstiegspunkt für anfängliche Größe und Daten
    • Unterstützt Wiederholungsversuche im Netzwerk, indem der Callback beibehalten und die Weiterleitung später erfolgt
    • Threadsichere Callbacks ermöglichen asynchrones Laden zum Erstellen eines einzelnen Netzwerks PagedList im UI-Thread gesichert.
    • Klarer formuliertes Fehlerverhalten bei Parametern des anfänglichen Ladevorgangs
  • TiledDataSource wurde in PositionalDataSource umbenannt, um und die Tatsache, dass bei Platzhaltern deaktiviert.

  • PageKeyedDataSource wurde hinzugefügt, um das nächste/vorherige, in folgende Elemente eingebettete Token zu unterstützen wird die Netzwerkseite geladen. KeyedDataSource wurde in ItemKeyedDataSource umbenannt, um Unterschied klar zu erkennen.

  • LivePagedListBuilder und DataSource.Factory ersetzen LivePagedListProvider Der Builder bietet die gleiche Funktionalität mit mehr und vereinfachte Standardeinstellungen. In der Werkseinstellung ist die Generation DataSource erlaubt um unabhängig von LiveData zu bleiben.

  • PagedList.BoundaryCallback wurde für den Anwendungsfall Datenbank und Netzwerk hinzugefügt.

  • Der PagedList.Builder-Konstruktor übernimmt jetzt DataSource + PagedList.Config ähnlich wie LivePagedListBuilder und ermöglicht den Diamantoperator in Java oder abgeleitete Typen in Kotlin.

  • PagedList.getConfig() hinzugefügt und PagedList.Config hat jetzt ein öffentliches Mitglied Eigenschaften.

  • Für KeyedDataSource.loadBefore() sind keine umgekehrten Ergebnisse mehr zu erwarten.

  • PagedListAdapter.onCurrentListChanged() wurde hinzugefügt, um auf Updates zu warten, zu denen PagedList wird angezeigt.

Fehlerkorrekturen

  • Fehler bezüglich IndexOutOfBoundsException in PagedListAdapter(Helper) b/67883658 behoben

1.0.0 bis 6. November 2017

Alle Hauptkomponenten (außer Paging) sind jetzt 1.0.0. Das ist genau das Gleiche, veröffentlicht als rc1, bis auf eine Änderung an der reactivestreams-Bibliothek.

Fehlerkorrekturen

Releasekandidaten – 18. Oktober 2017

Alle wichtigen Artefakte (außer Paging) sind jetzt 1.0.0-rc1.

Es sind keine weiteren bekannten Probleme oder neuen Funktionen geplant für den 1.0.0 Release. Bitte führen Sie ein Upgrade Ihrer Projekte zur Verwendung von 1.0.0-rc1 durch und helfen Sie uns. um einen steinharten 1.0.0 zu versenden.

Verhaltensänderung

  • Mit diesem Release wird Lifecycle.Event#ON_STOP jetzt ausgelöst, wenn onSaveInstanceState wird angerufen (zuvor war es gerade als CREATED markiert) ohne dass ON_STOP gesendet wird. Weitere Informationen dazu finden Sie in der Dokumentation zu Lebenszyklen

Fehlerkorrekturen

  • Raum:

    • Der Raum ist jetzt vom neuesten xerialen Artefakt abhängig, das das OutOfMemory korrigiert Probleme während der Kompilierung. b/62473121
    • Query-Methoden können jetzt mit @Transaction annotiert werden. Weitere Informationen finden Sie in der Referenzdokumentation zu @Transaction. b/65112315
    • StringUtil Kurs im Chatroom ist nicht öffentlich verfügbar API (sie war nie als öffentliche API vorgesehen).
  • Lebenszyklen:

    • LiveData funktioniert ordnungsgemäß, wenn Activity in der API teilweise abgedeckt ist < 24. b/65665621

    • OnLifecycleEvent-Methoden in übergeordneten Klassen werden jetzt ordnungsgemäß aufgerufen oder ein Wenn dies nicht möglich ist, wird während der Kompilierung eine Warnung ausgegeben. b/63474615

    • Lebenszyklus beinhaltet jetzt WeakReference-Werte wieder in ihre LifecycleOwner vermeiden, LifecycleOwner, wenn der Lebenszyklus länger im Arbeitsspeicher gehalten wird als üblich. Dies ist nur eine Vorsichtsmaßnahme. Lifecycle veröffentlichen).

9. Oktober 2017

Paging alpha-3 wird freigegeben. wodurch es mit dem beta 2 kompatibel ist. von Lifecycles und Room.

Fehlerkorrekturen

  • Verbesserte Paging-Dokumentation.

5. Oktober 2017

Alle wichtigen Artefakte (außer Paging) sind jetzt beta 2. In dieser Version gibt es keine neue Version von Paging.

Fehlerkorrekturen

  • Lebenszyklen:

    • LiveDataReactiveStreams meldet sich jetzt korrekt von der Quelle ab Publisher, wenn LiveData nicht aktiv ist. b/62609183
    • Lebenszyklusereignisse werden ordnungsgemäß an übergeordnete Klassen weitergegeben, wenn die übergeordnete Klasse aus einem anderen Modul stammt. b/63474615
    • LiveData handhabt Beobachter beim Abbestellen Abo-Erstellung. b/66337741
    • Das Artefakt FullLifecycleObserver für die Java 8-Sprache ist jetzt in der Abhängigkeitsstruktur verfügbar. b/66525578

    • Fügen Sie Ihrer Proguard-Datei die folgenden Zeilen hinzu. (Dies ist nicht erforderlich, wenn Version 1.0.0 ausgeliefert wird.)

      • -keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
  • Raum:

    • Room gibt jetzt bei der Kompilierung einen Fehler aus, wenn das zurückgegebene Pojo in einem Die Methode @Query hat ein Feld @NonNull, das mit keiner der Spalten in der Abfrageantwort. Wenn das Feld @Nullable ist, gilt nur „Raum“. gibt eine Warnung aus. b/67115337
    • Room validiert jetzt Indexe in neueren Betriebssystemversionen. b/63132683
    • Der Raum wählt standardmäßig no-arg-Konstruktor aus, wenn mehrere mit übereinstimmenden Konstruktoren in einem Pojo. b/67353427
    • Einspaltige Primärschlüssel können Nullable sein, wenn es sich um Integer oder Long. b/67086876
    • Der Entwertungstracker verarbeitet den erneuten Eintritt im Testmodus ordnungsgemäß. b/65471397
    • Der Chatroom sucht jetzt nach ungültigen Zeichen in Spalte und Tabelle Namen bei der Kompilierungszeit (ungültige Zeichen: `, "). b/64749111

21. September 2017

Mit diesem Release erreichen alle Module der Architekturkomponenten mindestens beta 1 außer der neuen Paging Library (alpha 2).

Wir planen keine weiteren API-Änderungen. Ungeplante Änderungen können passieren, Die Messlatte für API-Änderungen bis zum 1.0.0 (stabile Version) ist sehr hoch und wird unwahrscheinlich.

  • Lebenszyklusaktivität und LifecycleFragment wird vor 1.0.0 (stabil) entfernt. Sie werden nicht benötigt, wenn Sie die Support Library 26.1.0 oder höher verwenden.

Im Gegensatz zur Alpha-Phase ist die Betaphase nur für eine sehr kurze Dauer geplant.

Versionsänderungen

  • Lebenszyklus-Erweiterungen und Raum sind jetzt beta 1
  • Paging ist jetzt alpha 2
  • Keine Änderungen bei Lebenszyklus (Laufzeit, häufig) und Arch Core (allgemein). Diese beiden Artefakte sind seit dem 13. September Version 1.0.0.

Neue Artefakte

  • Lebenszyklen haben jetzt ein neues Artefakt namens common-java8. Dieses Artefakt enthält ein neue Schnittstelle namens DefaultLifecycleObserver welche hat Standardimplementierungen für alle Lebenszyklusmethoden. Wenn Sie die Programmiersprache Java 8 verwenden, sollten Sie dieses Artefakt statt Annotationen vorziehen.

    • Aufgrund eines Fehlers in beta1 müssen Sie eine explizite Abhängigkeit für Modul android.arch.lifecycle:common:1.0.1, um das neue Artefakt common-java8 zu verwenden. Dieses Problem wird in beta2 behoben.

Änderungen an der Verpackung

  • android.arch.persistence.room.db“ wurde in „android.arch.persistence.db“ verschoben
  • android.arch.persistence.room.db-impl wurde verschoben und in android.arch.persistence.db-framework umbenannt

Beide Artefakte sind bereits von Room abhängig. Sofern Sie sie nicht direkt verwendet haben, sollten Sie keine Änderungen an Ihren Build-Dateien vornehmen müssen.

API-Änderungen

  • Raum:

    • Die Annotation @ColumnInfo unterstützt jetzt das Festlegen einer Sortierung für die Spalte. b/62007004
    • transient-Felder werden jetzt standardmäßig ignoriert, es sei denn, sie sind mit @ColumnInfo annotiert. @Embedded oder @Relation. b/62600692
    • Primärschlüssel müssen mit @NonNull gekennzeichnet werden, sofern sie nicht automatisch generiert werden. b/64292391 <ph type="x-smartling-placeholder">
        </ph>
      • Für diese Änderung ist möglicherweise eine Schemamigration erforderlich. Für die Unannehmlichkeiten möchten wir uns entschuldigen.
    • Eine neue Convenience-Anmerkung (@Transaction) wurde hinzugefügt, überschreibt eine DAO-Methode und führt sie in einer Transaktion aus.
  • SQLite-Datenbank unterstützen:

  • Paging:

    • Verbesserte Dokumentation zum Paging mit mehr Beispielen und Thread-Annotationen

Fehlerkorrekturen

  • Raum: <ph type="x-smartling-placeholder">
      </ph>
    • Mehrzeilige Kotlin-Strings in @Query-Methoden werden ordnungsgemäß verarbeitet. b/65809374
  • Paging: <ph type="x-smartling-placeholder">
      </ph>
    • Das Paging-Artefakt hängt nicht mehr von junit ab. b/65690261

1.0.0 Alpha 9-1 – 13. September 2017

Dies ist ein Hauptrelease, bei dem Artefakte des Kernlebenszyklus (Laufzeit, allgemein) und Arch Core (allgemein) Zur stabilen Version 1.0.0

Im Zuge dieser Änderung ist die Support Library 26.1.0 jetzt von diesen Bibliotheken abhängig. Sowohl AppCompatActivity als auch Support-Fragment implementieren Sie jetzt die LifecycleOwner-Schnittstelle.

Dieser Release hängt auch von der Supportbibliothek 26.1.0 ab, um die neue Integration nutzen zu können.

Neue Bibliothek: Paging

Diese Version umfasst außerdem eine neue Bibliothek namens Paging, mit der sich große Datensätze, falls erforderlich, in Blöcken in eine RecyclerView. Paging wird als alpha1 veröffentlicht. und hat einen eigenen Veröffentlichungszyklus.

API-Änderungen

Fehlerkorrekturen

  • Generierte Klassen werden jetzt mit @Generated annotiert, wenn die App die Annotation im Klassenpfad enthält. b/35754819

  • Der Beobachter-Vergleichsfehler von MediatorLiveData wurde behoben. b/64413274

  • SQLite-Abfragen vom Typ WITH werden jetzt mit [LiveData] unterstützt. [ref-LiveData] b/62510164

  • Es wurde ein Fehler behoben, bei dem InvalidationTracker bei mehr als einer Tabelle nicht die richtige Liste sendete. erfasst wird. b/65099281

  • Ein Fehler wurde behoben, bei dem Room unter Windows verschiedene Dateien generiert hat. b/64470691

  • LifecycleObservers werden jetzt im Stammpaket unterstützt. b/62310817

1.0.0 Alpha 9 – 16. August 2017

Fehlerkorrekturen

1.0.0 Alpha 8 – 1. August 2017

Änderungen im Verhalten

  • Für Spalten mit primitiven Typen oder Spalten wurde die Einschränkung NOT NULL hinzugefügt annotiert mit NonNull. Dadurch ändert sich die Struktur Ihrer Wenn Sie bereits mit Architekturkomponenten Alpha 7 oder niedriger arbeiten, müssen Sie eine Migration implementieren, wenn Sie die Daten behalten oder die Methode fallbackToDestructiveMigration()-Methode im Builder. b/62007004

API-Änderungen

1.0.0 Alpha 7 – 26. Juli 2017

Fehlerkorrekturen

  • Ein kritischer Fehler in der Methode removeObserver der LifecycleRegistry wurde behoben, der eine LifecycleObserver-Readdition unbrauchbar machte.

  • InvalidationTracker für benutzerdefinierte Datenbanken korrigiert b/63162311

1.0.0 Alpha 6 – 25. Juli 2017

Verhaltensänderungen

  • Die Reihenfolge der LifecycleObserver-Aufrufe wurde geändert. Bisher wurden Beobachter immer in der Reihenfolge ihrer Hinzufügung aufgerufen: Wenn observer1 vor dem observer2 hinzugefügt wird, erhält es ON_CREATE und alle anderen Ereignisse vor dem observer2. Dies gilt nicht mehr für Zerstörungsereignisse, da Beobachter in umgekehrter Reihenfolge der Addition aufgerufen werden. Aktuelles Verhalten: Wenn observer1 vor observer2 hinzugefügt wird, wird ON_CREATE zuerst an observer1 und dann an observer2 gesendet (dies gilt für ON_START und ON_RESUME), aber das Ereignis ON_PAUSE wird zuerst an observer2 und erst dann an observer1 gesendet (gleiche für ON_STOP und ON_DESTROY).

  • Raum löst eine Ausnahme aus, wenn die Migration fehlt. Bisher hat Room die Datenbank nur gelöscht, aber jetzt stürzt die App ab. Entwickler können das Löschverhalten durch Aufrufen der Builder API aktivieren. b/63872392

API-Änderungen

  • Die Methode fallbackToDestructiveMigration() wurde RoomDatabase.Builder hinzugefügt zu die Datenbank löschen, wenn die Migration fehlt. b/63872392

  • Architekturkomponenten hängen jetzt von der Support Library 26.0.0 ab

Fehlerkorrekturen

  • Die Verarbeitung von @Relation, die in @Embedded verschachtelt ist, wurde behoben. b/63736065

  • Fehler beim Testen der Migration für Tabellen mit automatisch erhöhtem Primärschlüssel wurden behoben. b/63393618

  • Jetzt erhalten @Abfragen, die DELETE- oder UPDATE-Abfragen ausführen, Argumente korrekt. b/63872538

  • ViewModels werden jetzt beibehalten, wenn sich das Eigentümerfragment im Backstack befindet und die Konfiguration zweimal geändert wird. b/38445801

1.0.0 Alpha 5 – 18. Juli 2017

API-Änderungen

Sie müssen sich auf das Artefakt android.arch.persistence.room:rxjava2 verlassen, um RxJava-Unterstützung für Room hinzuzufügen.

Fehlerkorrekturen

  • @Delete-Abfragen ohne Parameter wurden korrigiert. b/63608092

  • Probleme bei der Prüfung des Raumtyps auf Getter und Setter wurden behoben. b/63733651

1.0.0 Alpha 4 – 11. Juli 2017

API-Änderungen

  • Eine neue praktische Methode (runInTransaction()) wurde zu RoomDatabase hinzugefügt.

  • Die Methoden @Insert, @Delete und @Update können jetzt Parameter aus verschiedenen Entitätstypen haben. b/62682405

Fehlerkorrekturen

  • Die byte[]-Verarbeitung in @Dao-Methoden wurde korrigiert. b/62460045

  • Bei der Migrationsprüfung in Room wird jetzt nicht zwischen Groß- und Kleinschreibung unterschieden. b/62875382

  • Die Proguard-Konfiguration für das Lebenszyklusartefakt wurde korrigiert. b/62113696

1.0.0 Alpha 3 – 15. Juni 2017

API-Änderungen

  • In @OnLifecycleEvent wird derzeit nur ein Ereignisparameter unterstützt. Dies ist eine Änderung in Vorbereitung auf die Java 8-Unterstützung, damit wir zu zukünftig mit Standardmethoden. In Bezug auf diese Änderung Die mit @OnLifecycleEvent(ON_ANY) annotierten Methoden können einen zweiten Parameter des Typs empfangen Event (erster Parameter ist LifecycleOwner). Weitere Informationen finden Sie in der Dokumentation zum Lebenszyklus.

  • Die Klassen LifecycleActivity und LifecycleFragment werden in das Artefakt android.arch.lifecycle:extensions verschoben.

  • MigrationTestHelper empfängt die Instrumentation-Instanz. statt der Context, um das Schema aus den Test-Assets zu lesen und die Datenbank im Anwendungskontext.

  • Anmerkungen @Insert, @Delete und @Update in @DAO können jetzt Iterable als Parametertyp verwendet werden. b/62259820

Fehlerkorrekturen

  • Überschriebene Methoden mit Lebenszyklusereignissen werden nicht mehr mehrmals aufgerufen.

  • Mehrere IN-Parameter werden jetzt korrekt verarbeitet. b/62608681

  • Abstrakte DAO-Klassen können jetzt einen Konstruktor haben, der die @Database empfängt Instanz. b/38488747

  • DAO können jetzt eine Superklasse/Schnittstelle mit Typparametern haben. b/62103620

1.0.0 Alpha 2 – 2. Juni 2017

API-Änderungen

Fehlerkorrekturen

  • Proguard-Dateien für Lebenszyklen. (b/62113696)
  • Datenverlust mit Typkonverter (b/62100716)
  • Rückgabe von Long[] von @Insert-Abfragen zulassen.

1.0.0 Alpha 1 – 17. Mai 2017

MinSDK:14

Allgemeine Hinweise

  • Obwohl wir vor der Einführung viele Tests durchgeführt haben, befinden sich Architekturkomponenten derzeit in der Alphaphase. Wenn Sie eine Produktions-App erstellen, beachten Sie, dass sich die API vor der Version 1.0 ändert und möglicherweise nicht ganz robust ist. Wenn Sie mit dem Beheben von Problemen in von Ihnen verwendeten Bibliotheken nicht vertraut sind, empfehlen wir, zuerst Architekturkomponenten in Nebenprojekten auszuprobieren.

  • Wir raten davon ab, jetzt alle Nutzer zu migrieren. Wir halten eine Migrationsanleitung für die Version 1.0 der Architekturkomponenten bereit.

Bekannte Einschränkungen und Probleme