Ich lese über Raumbibliothek von Android. Ich sehe, dass sie das Paket Android
in androidx
geändert haben. Ich habe das nicht verstanden. Jemand bitte erklären.
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Auch dies ist mit dem Paket Android
verfügbar.
implementation "Android.Arch.persistence.room:runtime:$room_version"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_version"
androidx
anstelle von Android
gepackt werden?.Wir führen eine neue Paketstruktur ein, um zu verdeutlichen, welche Pakete mit dem Betriebssystem Android gebündelt und welche mit dem APK Ihrer App gepackt sind. In Zukunft wird die Android. * -Pakethierarchie für Android Pakete reserviert, die mit dem Betriebssystem geliefert werden. Andere Pakete werden in der neuen androidx. * -Pakethierarchie als Teil der AndroidX-Bibliothek ausgegeben.
AndroidX ist eine neu gestaltete Bibliothek, um Paketnamen deutlicher zu machen. Von nun an gilt die Android-Hierarchie nur für Android Standardklassen, die mit Android Betriebssystem geliefert werden und andere Bibliotheken/Abhängigkeiten werden Teil von androidx sein (macht mehr Sinn). Von nun an wird die gesamte Neuentwicklung in Androidx aktualisiert.
com.Android.support. **: androidx.
com.Android.support:appcompat-v7: androidx.appcompat: appcompat com.Android.support:recyclerview-v7: androidx.recyclerview: recyclerview com.Android.support:design: com.google.Android.material: material
Komplette Artefaktzuordnungen für AndroidX-Pakete
Früher verwendete _support library
_ die SDK-Version, aber AndroidX verwendet den Semantic-version
. Es wird eine neue Version von 28.0.0 → 1.0.0 erstellt.
In Android Studio 3.2 (September 2018) gibt es eine direkte Möglichkeit, ein vorhandenes Projekt nach AndroidX
zu migrieren. Dadurch werden alle Pakete automatisch refaktorisiert.
Vor der Migration wird dringend empfohlen, ein Backup Ihres Projekts zu erstellen.
Bestehendes Projekt
Neues Projekt
Setzen Sie diese Flags in Ihr _gradle.properties
_
_Android.enableJetifier=true
Android.useAndroidX=true
_
Überprüfen Sie die @ Bibliothekszuordnungen für das gleiche AndroidX-Paket .
Check @ Offizielle Seite von Migrate to AndroidX
Von Android Support Revision 28.0.0
Dies ist die letzte Feature-Version unter der Android.support-Verpackung . Entwickler werden aufgefordert, auf AndroidX 1.0.0 zu migrieren
Also geh mit AndroidX, denn Android wird ab sofort nur noch das Androidx-Paket aktualisieren.
https://developer.Android.com/topic/libraries/support-library/androidx-overview
https://Android-developers.googleblog.com/2018/05/hello-world-androidx.html
Basierend auf dem Dokumentation :
androidx ist eine neue Paketstruktur, um zu verdeutlichen, welche Pakete mit dem Betriebssystem Android gebündelt und welche mit dem APK Ihrer App gepackt werden. In Zukunft wird die Android. * -Pakethierarchie für Android Pakete reserviert, die mit dem Betriebssystem geliefert werden. andere pakete werden in der neuen androidx. * pakethierarchie ausgegeben.
Die neu gestaltete Paketstruktur soll kleinere und fokussiertere Bibliotheken fördern. Details zu den Artefaktzuordnungen finden Sie hier .
Es gibt Unterstützungsbibliotheken (mit Komponenten und Paketen aus Gründen der Abwärtskompatibilität) mit der Bezeichnung "v7", wenn die unterstützte minimale SDK-Stufe 14 ist. Die neue Benennung macht deutlich, dass die Aufteilung zwischen den mit der Plattform gebündelten APIs und den Bibliotheken für App-Entwickler, die verwendet werden, verständlich ist auf verschiedenen Versionen von Android. Sie können auf offizielle Ankündigung für weitere Details verweisen.
AndroidX ist das Open-Source-Projekt, mit dem das Android -Team Bibliotheken entwickelt, testet, paketiert, versioniert und veröffentlicht. Jetpack .
AndroidX ist eine wesentliche Verbesserung der ursprünglichen Android Support Library . Wie die Support-Bibliothek wird AndroidX separat vom Betriebssystem Android ausgeliefert und bietet Abwärtskompatibilität für Android Versionen. AndroidX ersetzt die Support-Bibliothek vollständig durch Feature-Parität und neue Bibliotheken.
AndroidX enthält die folgenden Funktionen:
Alle Pakete in AndroidX befinden sich in einem konsistenten Namespace, der mit der Zeichenfolge androidx beginnt. Die Support Library-Pakete wurden den entsprechenden androidx. * -Paketen zugeordnet. Eine vollständige Zuordnung aller alten Klassen und Build-Artefakte zu den neuen finden Sie auf der Seite Paket-Refactoring.
Im Gegensatz zur Support-Bibliothek werden AndroidX-Pakete separat verwaltet und aktualisiert. Die Androidx-Pakete verwenden strenge Semantic Versioning
ab Version 1.0.0. Sie können AndroidX-Bibliotheken in Ihrem Projekt unabhängig aktualisieren.
Alle neuen Support-Bibliotheksentwicklungen werden in der AndroidX-Bibliothek ausgeführt. Dies umfasst die Wartung der ursprünglichen Support Library-Artefakte und die Einführung neuer Jetpack-Komponenten.
Verwenden von AndroidX
Unter Migration auf AndroidX erfahren Sie, wie Sie ein vorhandenes Projekt migrieren.
Wenn Sie AndroidX in einem neuen Projekt verwenden möchten, müssen Sie das Kompilierungs-SDK auf Android 9.0 (API-Stufe 28) oder höher festlegen und beide der folgenden Android Gradle-Plugin-Flags festlegen auf true in deiner gradle.properties
Datei.
Android.useAndroidX
: Wenn diese Option auf true gesetzt ist, verwendet das Plugin Android die entsprechende AndroidX-Bibliothek anstelle einer Support-Bibliothek. Das Flag ist standardmäßig falsch, wenn es nicht angegeben ist.
Android.enableJetifier
: Wenn diese Option auf true gesetzt ist, migriert das Plugin Android vorhandene Bibliotheken von Drittanbietern automatisch zur Verwendung von AndroidX, indem die Binärdateien neu geschrieben werden. Das Flag ist standardmäßig falsch, wenn es nicht angegeben ist.
Für Artefaktzuordnungen siehe dieses
Dieser Artikel Android Jetpack: Was bedeuten die jüngsten Ankündigungen für die Android-Supportbibliothek? erklärt es gut
Heutzutage wird die Support-Bibliothek von vielen als wesentlicher Bestandteil der Android App-Entwicklung angesehen, bis zu dem Punkt, an dem 99 Prozent der Apps im Google Play Store sie verwenden. Mit dem Anwachsen der Support-Bibliothek haben sich jedoch Inkonsistenzen in Bezug auf die Namenskonvention der Bibliothek eingeschlichen.
Anfänglich gab der Name jedes Pakets die von diesem Paket unterstützte API-Mindeststufe an, z. B. support-v4. In Version 26.0.0 der Support-Bibliothek wurde die Mindest-API jedoch auf 14 erhöht, sodass viele der Paketnamen heute nichts mehr mit der unterstützten Mindest-API-Version zu tun haben. Wenn beide Pakete, support-v4 und support-v7, eine Mindest-API von 14 haben, ist es leicht zu erkennen, warum die Leute verwirrt sind!
Um diese Verwirrung zu beseitigen, überarbeitet Google derzeit die Support-Bibliothek in eine neue Paketstruktur für die Android-Erweiterungsbibliothek (AndroidX). AndroidX bietet vereinfachte Paketnamen sowie Maven-Gruppen-IDs und -Artefakt-IDs, die den Inhalt jedes Pakets und die unterstützten API-Stufen besser widerspiegeln.
Mit der aktuellen Namenskonvention ist auch nicht klar, welche Pakete mit dem Betriebssystem Android gebündelt und welche mit dem APK (Android Package Kit) Ihrer Anwendung gepackt sind. Um diese Verwirrung zu beseitigen, werden alle entbündelten Bibliotheken in den androidx. * -Namensraum von AndroidX verschoben, während die Android. * -Pakethierarchie für Pakete reserviert wird, die mit dem Betriebssystem Android geliefert werden.
Nur ein paar Kleinigkeiten von meiner Seite zu allen verfügbaren Antworten
Brauchen von AndroidX
Nach der aktuellen Namenskonvention ist nicht klar, welche Pakete mit Android-Betriebssystem und welche mit dem APK Ihrer Anwendung (Android Package Kit) gebündelt sind. Um diese Verwirrung zu beseitigen, werden alle entbündelten Bibliotheken in den androidx. * -Namensraum von AndroidX verschoben, während die Android. * -Pakethierarchie für Pakete reserviert wird, die mit Android ausgeliefert werden. Betriebssystem.
Anderes als das,
Anfänglich gab der Name jedes Pakets die von diesem Paket unterstützte API-Mindeststufe an, z. B. support-v4. Die Version 26.0. der Support-Bibliothek hat jedoch die minimale API auf 14 erhöht, sodass heute viele der Paketnamen nichts mit der minimalen unterstützten API-Ebene zu tun haben. Wenn die Pakete "support-v4" und "support-v7" beide eine Mindest-API von 14 haben, ist leicht zu erkennen, warum die Leute verwirrt sind. Mit AndroidX gibt es also keine Abhängigkeit von der API-Ebene.
Eine weitere wichtige Änderung besteht darin, dass die AndroidX-Artefakte unabhängig voneinander aktualisiert werden, sodass Sie einzelne AndroidX-Bibliotheken in Ihrem Projekt aktualisieren können, anstatt jede Abhängigkeit auf einmal ändern zu müssen. Diese frustrierenden "Alle com.Android.support-Bibliotheken müssen exakt dieselbe Versionsspezifikation verwenden" Nachrichten sollten der Vergangenheit angehören!
Es ist dasselbe wie die AppCompat-Versionen der Unterstützung, enthält jedoch weniger Probleme mit den Versionen v4 und v7, sodass die Verwendung der verschiedenen Komponenten von Android XML-Elementen sehr hilfreich ist.