Я читаю о комнате библиотеки Android. Я вижу, они изменили пакет android
на androidx
. Я не понимал, что. Может кто-нибудь объяснить, пожалуйста?
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Даже это доступно с android
пакетом также.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
- Зачем нужно было упаковывать новые библиотеки поддержки
androidx
вместоandroid
? - Вариант использования и влияние факторов в существующих проектах.
androidx.*
иерархия пакетов для библиотек поддержки Все они будут поставляться в том же пакете, что и мы в эпохуandroidx
(как компоненты архитектуры, другие библиотеки поддержки).androidx
пакет из COREandroid
.Ответы:
AndroidX - библиотека расширений Android
Из документации AndroidX
Нужен AndroidX
AndroidX - это переработанная библиотека, чтобы сделать имена пакетов более понятными. Таким образом, теперь иерархия Android будет доступна только для классов Android по умолчанию, которые поставляются с операционной системой Android, а другие библиотеки / зависимости будут частью Android (имеет больше смысла). Так что теперь все новые разработки будут обновляться в AndroidX.
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: материал
Полное сопоставление артефактов для пакетов AndroidX
AndroidX использует Semantic-версию
Ранее
support library
использовалась версия SDK, но AndroidX используетSemantic-version
. Он собирается пересмотреть версию с 28.0.0 → 1.0.0.Как перенести текущий проект
В Android Studio 3.2 (сентябрь 2018 г.) есть прямая возможность перенести существующий проект в
AndroidX
. Этот рефакторинг всех пакетов автоматически.Перед миграцией настоятельно рекомендуется сделать резервную копию вашего проекта.
Поместите эти флаги в свой
gradle.properties
Проверьте соответствие @ Library для одинакового пакета AndroidX .
Проверьте @ Официальная страница Миграция на AndroidX
Что такое Jetifier?
Ошибки миграции
Поддержка 28.0.0 это последний выпуск?
От версии поддержки Android 28.0.0
Так что иди с AndroidX, потому что Android теперь будет обновлять только пакет AndroidX.
Дальнейшее чтение
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
источник
enableJetifier=false
является значением по умолчанию. Это неверно, когда вы не установите его. Это означает, что ни одна из ваших библиотек не будет переписана на AndroidX.Migrate to AndroidX
На основании документации :
Перепроектированная структура пакета должна поощрять меньшие и более сосредоточенные библиотеки. Вы найдете подробности относительно отображений артефактов здесь .
Существуют вспомогательные библиотеки (содержащие компонент и пакеты для обратной совместимости) с именем «v7», когда минимальный поддерживаемый уровень SDK равен 14, новое наименование дает четкое представление о разделении между API-интерфейсами в комплекте с платформой и используемыми библиотеками для разработчиков приложений. на разных версиях Android. Вы можете обратиться к официальному объявлению для более подробной информации.
источник
AndroidX - это проект с открытым исходным кодом, который команда Android использует для разработки, тестирования, упаковки, версии и выпуска библиотек в Jetpack .
AndroidX - значительное улучшение оригинальной библиотеки поддержки Android . Как и библиотека поддержки, AndroidX поставляется отдельно от ОС Android и обеспечивает обратную совместимость между версиями Android. AndroidX полностью заменяет библиотеку поддержки, предоставляя функции четности и новые библиотеки.
Все пакеты в AndroidX живут в согласованном пространстве имен, начиная со строки androidx. Пакеты библиотеки поддержки были сопоставлены с соответствующими пакетами androidx. *. Полное отображение всех старых классов и артефактов сборки на новые см. На странице «Рефакторинг пакетов».
В отличие от библиотеки поддержки, пакеты AndroidX поддерживаются и обновляются отдельно. Пакеты androidx используют строгую
Semantic Versioning
версию начиная с версии 1.0.0. Вы можете самостоятельно обновлять библиотеки AndroidX в своем проекте.Все новые разработки библиотеки поддержки будут происходить в библиотеке AndroidX. Это включает в себя обслуживание оригинальных артефактов библиотеки поддержки и введение новых компонентов Jetpack.
Использование AndroidX
См. Миграция на AndroidX, чтобы узнать, как перенести существующий проект.
Если вы хотите использовать AndroidX в новом проекте, вам нужно установить SDK для компиляции на Android 9.0 (уровень API 28) или выше и установить оба значения следующих флагов плагина Android Gradle в true
gradle.properties
.android.useAndroidX
: При значении true плагин Android использует соответствующую библиотеку AndroidX вместо библиотеки поддержки. По умолчанию флаг имеет значение false, если он не указан.android.enableJetifier
: При значении true плагин Android автоматически переносит существующие сторонние библиотеки для использования AndroidX, переписывая их двоичные файлы. По умолчанию флаг имеет значение false, если он не указан.Для отображения артефактов смотрите это
источник
Эта статья Android Jetpack: Что означают последние анонсы для библиотеки поддержки Android? хорошо объясняет
источник
Просто несколько битов с моей стороны ко всем доступным ответам
Нужен AndroidX
В соответствии с действующим соглашением об именах неясно, какие пакеты связаны с операционной системой Android , а какие - с APK ( Android Package Kit ) вашего приложения . Чтобы прояснить эту путаницу, все разукрупненные библиотеки будут перемещены в AndroidX «s androidx. * Пространство имена, в то время как Android. * Иерархия пакета будет зарезервирована для пакетов , которые поставляются с Android операционной системы.
Кроме этого,
Первоначально имя каждого пакета указывало минимальный уровень API, поддерживаемый этим пакетом, например support-v4 . Однако версия 26.0.0 библиотеки поддержки увеличила минимальный API до 14 , поэтому сегодня многие имена пакетов не имеют ничего общего с минимальным поддерживаемым уровнем API. Когда оба пакета support-v4 и support-v7 имеют минимальный API-интерфейс 14, легко понять, почему люди путаются! Так что теперь с AndroidX нет зависимости от уровня API.
Другим важным изменением является то, что артефакты AndroidX будут обновляться независимо, поэтому вы сможете обновлять отдельные библиотеки AndroidX в своем проекте, вместо того, чтобы менять каждую зависимость сразу. Эти разочаровывающие сообщения « Все библиотеки com.android.support должны использовать одну и ту же версию спецификации » должны уйти в прошлое!
источник
Я узнал об AndroidX из этого видео на Android Dev Summit . Обобщение -
источник
Это то же самое, что и версии поддержки AppCompat, но в нем меньше путаницы версий v4 и v7, поэтому очень полезно использовать различные компоненты XML-элементов Android.
источник
androidx
заменитsupport library
после28.0.0
. Вы должны перенести свой проект, чтобы использовать его.androidx
используетSemantic Versioning
. ИспользованиеAndroidX
не будет смущать версией, представленной в имени библиотеки и имени пакета. Жизнь становится проще[AndroidX и поддержка совместимости]
источник
AndroidX - это проект с открытым исходным кодом, который команда Android использует для разработки, тестирования, упаковки, версии и выпуска библиотек в Jetpack.
После нескольких часов борьбы я решил эту проблему, добавив в app / build.gradle следующее:
Поместите эти флаги в свой gradle.properties
При миграции на Android Studio файл приложения / Gradle автоматически обновляется в соответствии с реализациями библиотеки исправлений из стандартной библиотеки.
См. Https://developer.android.com/jetpack/androidx/migrate.
источник
Android предоставляет несколько разных наборов библиотек. Один из них называется «Библиотека поддержки Android», а другой - «AndroidX». Выбор «Использовать Android. * Артефакты» означает, что мы хотим использовать AndroidX.
источник