wake-up-neo.com

Was ist AndroidX?

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"
  • Wofür mussten neue Support-Bibliotheken in androidx anstelle von Android gepackt werden?.
  • Anwendungsfall und Einflussfaktoren in bestehenden Projekten.
165
Khemraj

AndroidX - Android Erweiterungsbibliothek

Aus AndroidX-Dokumentation

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.

Brauchen von AndroidX

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

AndroidX benutzt Semantic-Version

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.

So migrieren Sie das aktuelle Projekt

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

  • Android Studio> Refactor-Menü> Auf AndroidX migrieren ...
  • Es wird analysiert und das Refraktor-Fenster unten geöffnet. Akzeptieren Sie die durchzuführenden Änderungen.

image

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

Was ist Jetifier?

Fehler beim Migrieren

  • Wenn Sie eine App erstellen und nach der Migration einige Fehler finden, müssen Sie diese geringfügigen Fehler beheben. Sie werden dort nicht stecken bleiben, weil das leicht behoben werden kann.
  • Bibliotheken von Drittanbietern werden im Verzeichnis nicht in AndroidX konvertiert, aber sie werden zur Laufzeit von Jetifier konvertiert. Machen Sie sich also keine Sorgen über Kompilierungsfehler, Ihre App wird einwandfrei ausgeführt.

Support 28.0.0 ist die letzte Version?

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.

Weitere Lektüre

https://developer.Android.com/topic/libraries/support-library/androidx-overview

https://Android-developers.googleblog.com/2018/05/hello-world-androidx.html

237
Khemraj

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.

19
Sagar

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

12
Basi

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.

5
onmyway133

Nur ein paar Kleinigkeiten von meiner Seite zu allen verfügbaren Antworten

Brauchen von AndroidX

  1. Wie gesagt in erstaunlicher Antwort von @KhemRaj,

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.

  1. 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!

2
Abhishek Kumar

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.

1
raj kavadia