Разница между androidx и com.android.support

Я собирался использовать компоновку ограничений в своем проекте, когда заметил, что есть две разные зависимости, которые я могу использовать:

  • com.android.support.constraint:constraint-layout
  • androidx.constraintlayout:constraintlayout

Есть ли разница между этими двумя или какая-то рекомендация предпочтительнее?

ИЗМЕНИТЬ

Google прекращает поддержку com.android.support и предлагает пользователям перейти на новый androidx эквивалент.

Примечание. С выпуском Android 9.0 (уровень API 28) появилась новая версия библиотеки поддержки под названием AndroidX, которая является частью Jetpack. Библиотека AndroidX содержит существующую библиотеку поддержки, а также включает последние компоненты Jetpack.

Вы можете продолжать использовать библиотеку поддержки. Исторические артефакты (версии 27 и более ранние и упакованные как android.support. *) Останутся доступными в Google Maven. Однако вся разработка новой библиотеки будет происходить в библиотеке AndroidX.

Мы рекомендуем использовать библиотеки AndroidX во всех новых проектах. Вам также следует подумать о переносе существующих проектов на AndroidX.

Вот официальное руководство по миграции и соответствующие эквиваленты библиотек.


person NewestStackOverflowUser    schedule 14.05.2018    source источник
comment
они одинаковые. Посмотрите на android jetpack, если вы хотите узнать разницу между android и androidx   -  person Tim    schedule 14.05.2018


Ответы (4)


Все библиотеки поддержки удаляют теги v4, v7, v12, v13 и т. Д., И все реорганизовано в пакеты androidx.

По сути, они такие же, но для справки в будущем androidx будет библиотекой, которую мы должны использовать в наших приложениях.

Android Studio 3.2 Canary, которая выходит на этой неделе (неделя от 14 мая 2018 г.), должна иметь инструмент, позволяющий выполнять автоматический рефакторинг пакетов androidx. Об этом было объявлено на Google i / o 2018.

person ariochdivij666    schedule 14.05.2018
comment
что входит в составные и разделенные пакеты - person blackHawk; 15.08.2019

Одно из различий между библиотеками AndroidX и Support заключается в том, что при использовании библиотек поддержки все библиотеки поддержки должны быть одной версии, но в androidX такого нет.

Другое дело, что в библиотеке поддержки большую часть времени, когда вам нужен компонент в вашем приложении, вам нужно добавить зависимости, которые имеют так много других вещей, которые вам действительно не нужны. но в AndroidX вы можете добавить только ту зависимость, которая вам нужна, и не более того.

person SinaMN75    schedule 16.02.2019

Это может помочь,

Вот несколько отличий:

  1. При нынешнем соглашении об именах неясно, какие пакеты идут в комплекте с операционной системой Android, а какие - с APK-файлом вашего приложения (Android Package Kit). Чтобы устранить эту путаницу, все разделенные библиотеки будут перемещены в пространство имен AndroidX. *, А иерархия пакетов android. * Будет зарезервирована для пакетов, поставляемых с операционной системой Android. Например: android.content.Intent; зависит от ОС Android и androidx.fragment.app.Fragment; поставляется с APK.

  2. Первоначально имя каждого пакета указывало минимальный уровень API, поддерживаемый этим пакетом, например support-v4. Однако версия 26.0.0 библиотеки поддержки увеличила минимальный API до 14, поэтому сегодня многие имена пакетов не имеют ничего общего с минимальным поддерживаемым уровнем API. Когда у пакетов support-v4 и support-v7 минимальный API-интерфейс равен 14, легко понять, почему люди запутались! Итак, теперь с AndroidX нет зависимости от уровня API.

  3. Это просто расширение второго пункта, еще одно важное изменение заключается в том, что артефакты AndroidX будут обновляться независимо, поэтому вы сможете обновлять отдельные библиотеки AndroidX в своем проекте, вместо того, чтобы изменять каждую зависимость сразу. Эти раздражающие сообщения «Все библиотеки com.android.support должны использовать одну и ту же спецификацию версии» должны уйти в прошлое!
person Abhishek Kumar    schedule 30.07.2019

Как сказано выше и в Переход на AndroidX, вы можете легко выполнить миграцию в AS:

В Android Studio 3.2 и более поздних версиях вы можете быстро перенести существующий проект на использование AndroidX, выбрав Рефакторинг> Перенести на AndroidX в строке меню.

Относительно разницы (TL; DR: без искажений, выделено мной)

AndroidX отображает исходные пакеты API библиотеки поддержки в пространство имен androidx. Изменились только имена пакетов и артефактов Maven; имена классов, методов и полей не изменились.

person serv-inc    schedule 03.07.2019