- Что такое AndroidX
- ОТВЕТЫ
- Ответ 1
- AndroidX — библиотека расширений Android
- Требуется AndroidX
- AndroidX использует Semantic-версию
- Как перенести текущий проект
- Существующий проект
- Новый проект
- Что такое Jetifier?
- Ошибки миграции
- Поддержка 28.0.0 — последний выпуск?
- Дальнейшее чтение
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Android X: знакомимся с изменениями в новой библиотеке поддержки
- Авторизуйтесь
- Android X: знакомимся с изменениями в новой библиотеке поддержки
- Пространства имён android.* против androidx.*
- Изменение в именовании пакетов и артефактов Maven
- Строгое версионирование для каждой библиотеки
- Миграция с 28.0.0-alpha1
- Что такое AndroidX?
- 9 ответов
- AndroidX — библиотека расширений Android
- Нужен AndroidX
- AndroidX использует семантическую версию
- Как перенести текущий проект
- Существующий проект
- Новый проект
- Что такое Jetifier?
- Ошибки миграции
- Поддержка 28.0.0 это последний релиз?
- Дальнейшее чтение
Что такое AndroidX
Я читаю о библиотеке комнаты Android. Я вижу, что они изменили пакет android на androidx . Я не понимал, что. Кто-то объяснит, пожалуйста.
Даже это доступно с пакетом android .
- Что нужно для упаковки новых библиотек поддержки в androidx вместо android .
- Использовать случай и влиять на факторы в существующих проектах.
ОТВЕТЫ
Ответ 1
AndroidX — библиотека расширений Android
Мы внедряем новую структуру пакета, чтобы сделать его более понятным, который пакеты связаны с операционной системой Android, и которые в комплекте с вашим приложением APK. Идем вперед, пакет android. * иерархия будет зарезервирована для пакетов Android, которые поставляются с операционная система. Другие пакеты будут выпущены в новом AndroidX. * иерархия пакетов как часть библиотеки AndroidX.
Требуется AndroidX
AndroidX — это переработанная библиотека, чтобы сделать имена пакетов более понятными. Таким образом, теперь иерархия android будет доступна только для классов Android по умолчанию, которые поставляются с операционной системой Android, а другие библиотеки/зависимости будут частью androidx (имеет больше смысла). Так что теперь все новые разработки будут обновляться в 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 использует Semantic-версию
Ранее support library использовал версию SDK, но AndroidX использует Semantic-version . Будет переиздание с 28.0.0 → 1.0.0.
Как перенести текущий проект
В Android Studio 3.2 (сентябрь 2018 г.) есть прямая возможность перенести существующий проект в AndroidX . Этот рефакторинг всех пакетов автоматически.
Перед миграцией настоятельно рекомендуется сделать резервную копию вашего проекта.
Существующий проект
- Android Studio> Меню «Рефакторинг»> Миграция в AndroidX.
- Он проанализирует и откроет окно рефрактора внизу. Принять изменения, которые будут сделаны.
Новый проект
Поместите эти флаги в свой gradle.properties
Что такое Jetifier?
Ошибки миграции
- Если вы создаете приложение и после миграции обнаруживаете ошибки, вам нужно исправить эти незначительные ошибки. Вы не застрянете там, потому что это легко исправить.
- Сторонние библиотеки в каталоге не конвертируются в AndroidX, но они конвертируются во время выполнения с помощью Jetifier, поэтому не беспокойтесь об ошибках времени компиляции, ваше приложение будет работать отлично.
Поддержка 28.0.0 — последний выпуск?
Это будет последний релиз функции под android.support упаковка, и разработчикам рекомендуется перейти на AndroidX 1.0.0
Так что используйте AndroidX, потому что теперь Android будет обновлять только пакет Androidx.
Дальнейшее чтение
Ответ 2
androidx — это новая структура пакетов, чтобы было понятнее, какие пакеты связаны с операционной системой Android, а какие — с приложением APK. В дальнейшем иерархия пакетов android. * Будет зарезервирована для пакетов Android, поставляемых с операционной системой; другие пакеты будут выпущены в новой иерархии пакетов androidx. *.
Перепроектированная структура пакета должна поощрять меньшие и более сосредоточенные библиотеки. Вы найдете подробности относительно отображений артефактов здесь.
Существуют вспомогательные библиотеки (содержащие компонент и пакеты для обратной совместимости) с именем «v7», когда минимальный поддерживаемый уровень SDK равен 14, новое именование дает четкое представление о разделении между API-интерфейсами в комплекте с платформой и используемыми библиотеками для разработчиков приложений. на разных версиях андроида. Вы можете обратиться к официальному объявлению для более подробной информации.
Ответ 3
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 переписав свои двоичные файлы. Флаг является ложным по умолчанию, если это не указано.
Отображение артефактов см. здесь.
Ответ 4
Сегодня многие считают, что библиотека поддержки является неотъемлемой частью разработки приложений для Android, так что ее используют 99 процентов приложений в магазине Google Play. Однако по мере роста библиотеки поддержки возникли несоответствия в соглашении об именах библиотек.
Первоначально имя каждого пакета указывало минимальный уровень API, поддерживаемый этим пакетом, например, support-v4. Однако версия 26.0.0 библиотеки поддержки увеличила минимальный API до 14, поэтому сегодня многие имена пакетов не имеют ничего общего с минимальным поддерживаемым уровнем API. Когда оба пакета support-v4 и support-v7 имеют минимальный API-интерфейс 14, легко понять, почему люди путаются!
Чтобы устранить эту путаницу, Google в настоящее время реорганизует Библиотеку поддержки в новую структуру пакета библиотеки расширений Android (AndroidX). AndroidX будет содержать упрощенные имена пакетов, а также групповые идентификаторы Maven и artifactIds, которые лучше отражают содержимое каждого пакета и поддерживаемые уровни API.
В соответствии с действующим соглашением об именах также неясно, какие пакеты связаны с операционной системой Android, а какие — с вашими приложениями APK (Android Package Kit). Чтобы устранить эту путаницу, все разделенные библиотеки будут перемещены в пространство имен AndroidXs androidx. *, А иерархия пакетов android. * Будет зарезервирована для пакетов, которые поставляются с операционной системой Android.
Ответ 5
Просто несколько битов от моей стороны ко всем доступным ответам
- Как сказано в удивительном ответе @KhemRaj,
В соответствии с действующим соглашением об именах неясно, какие пакеты связаны с операционной системой Android, а какие — с вашими приложениями APK (Android Package Kit). Чтобы устранить эту путаницу, все разделенные библиотеки будут перемещены в пространство имен AndroidX 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 должны использовать сообщения с одинаковой спецификацией версии» должны уйти в прошлое!
Ответ 6
Это то же самое, что и версии поддержки AppCompat, но в нем меньше путаницы версий v4 и v7, поэтому очень полезно использовать различные компоненты XML-элементов android.
Ответ 7
AndroidX — это проект с открытым исходным кодом, который команда Android использует для разработки, тестирования, упаковки, версии и выпуска библиотек в Jetpack.
Источник
Android X: знакомимся с изменениями в новой библиотеке поддержки
Авторизуйтесь
Android X: знакомимся с изменениями в новой библиотеке поддержки
Google перенесла разработку проекта AndroidX на AOSP. AndroidX — новая библиотека поддержки, которая добавляет новые функции и изменяет некоторые старые. Поговорим об этих изменениях.
Пространства имён android.* против androidx.*
Android-приложения зависят от двух типов классов:
- Классы вроде PackageManager , которые идут в комплекте с операционной системой и могут иметь разные API и поведение на разных версиях Android;
- Классы вроде AppCompatActivity или ViewModel , которые отделены от операционной системы и включаются в ваш apk. Эти библиотеки пишутся для предоставления API, поведение которого будет неизменным на как можно большем количестве версий Android.
Зачастую библиотеки, не идущие в комплекте, будут лучшим выбором, так как они предоставляют API для многих версий Android. Теперь все такие библиотеки, включая оные из Support Library и Architecture Components, будут включены в пространство имён androidx.* , чтобы вы понимали, какие зависимости нужно подключать.
Изменение в именовании пакетов и артефактов Maven
Также была переработана структура пакетов, чтобы поощрить создание небольших, более сфокусированных библиотек, которые уменьшат давление на приложения и тесты, не использующие ProGuard и Multidex. Были обновлены groupId и artifactId Maven, чтобы лучше отражать содержимое библиотеки. Кроме того, теперь к пакетам библиотеки добавляется префикс в виде их groupId , чтобы создать очевидную связь между используемым классом и артефактом Maven, из которого он берётся.
Сейчас вы можете ожидать следующее сопоставление старых пакетов с новыми:
android.support.** → androidx.@
android.databinding.** → androidx.databinding.@
android.design.** → com.google.android.material.@
android.support.test.** → (в будущем релизе) androidx.test.@
Так как библиотеки Architecture Components теперь включены в пакет AndroidX, их имена были упрощены, чтобы отразить их интеграцию с основными библиотеками. Примеры изменений:
android.arch.** → androidx.@
android.arch.persistence.room.** → androidx.room.@
android.arch.persistence.** → androidx.sqlite.@
Кроме того, поскольку в версии 28.0.0-alpha1 Material Components станут заменой Design Library, был обновлён пакет дизайна, чтобы отразить его новое направление.
Для получения полного списка сопоставлений от 28.0.0-alpha1 ( android.support ) к 1.0.0-alpha1 ( androidx ) посетите эту страницу. Учтите, что в течение альфа-стадии в этот список могут быть внесены небольшие изменения.
Строгое версионирование для каждой библиотеки
Начиная с рефакторинга AndroidX, версии библиотек были сброшены с 28.0.0 до 1.0.0. Будущие обновления будут версионироваться отдельно для каждой библиотеки, следуя строгим правилам, согласно которым основная версия будет указывать на бинарную совместимость. Это значит, например, что вы можете добавить и использовать новую функцию в RecyclerView без обновления всех остальных библиотек, используемых вашим приложением. Также это значит, что библиотеки, зависящие от androidx , могут предоставить гарантии приемлемой совместимости с будущими релизами AndroidX — так, зависимость от версии 1.5.0 может работать с версией 1.7.0, но, скорее всего, не будет работать с версией 2.0.0.
Миграция с 28.0.0-alpha1
Переход приложения от зависимостей android.support к зависимостям androidx проходит в два основных этапа: рефакторинг исходного кода и перевод зависимостей.
Рефакторинг исходного кода обновляет Java-код, XML-ресурсы и конфигурацию Gradle таким образом, чтобы ссылаться на отрефакторенные классы и артефакты Maven. Эта функция доступна в Android Studio Canary 14 для приложений, ориентированных на Android P.
17–19 декабря, Онлайн, Беcплатно
Если вы зависите от библиотеки, которая ссылается на более старую версию Support Library, Android Studio обновит эту библиотеку с помощью перевода зависимостей так, чтобы она ссылалась на androidx . Перевод зависимостей автоматически применяется Android Gradle Plugin 3.2.0-alpha14, который переписывает байт-код и ресурсы зависимостей JAR и AAR (а также транзитивных зависимостей) таким образом, чтобы они ссылались на новые androidx классы и артефакты. Также будет доступен отдельный инструмент для перевода в формате JAR.
Источник
Что такое AndroidX?
Я читаю о комнате библиотеки Android. Я вижу, что они изменили пакет android на androidx . Я не понимал, что. Может кто-нибудь объяснить, пожалуйста?
Даже это доступно с пакетом android .
- Зачем нужно было упаковывать новые библиотеки поддержки в androidx вместо android ?
- Вариант использования и влияние факторов в существующих проектах.
9 ответов
AndroidX — библиотека расширений Android
Мы внедряем новую структуру пакетов, чтобы было понятнее, какие пакеты связаны с операционной системой Android, а какие — с APK вашего приложения. В дальнейшем иерархия пакетов android. * Будет зарезервирована для пакетов Android, поставляемых с операционной системой. Другие пакеты будут выпущены в новой иерархии пакетов androidx. * Как часть библиотеки AndroidX.
Нужен AndroidX
AndroidX — это переработанная библиотека, чтобы сделать имена пакетов более понятными. Таким образом, теперь иерархия android будет использоваться только для классов Android по умолчанию, которые поставляются с операционной системой Android, а другие библиотеки / зависимости будут частью androidx (имеет больше смысла). Так что теперь все новые разработки будут обновляться в 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 использует семантическую версию
Ранее support library использовал версию SDK, но AndroidX использует Semantic-version . Он собирается пересмотреть версию с 28.0.0 → 1.0.0.
Как перенести текущий проект
В Android Studio 3.2 (сентябрь 2018 г.) есть прямая возможность перенести существующий проект в AndroidX . Этот рефакторинг всех пакетов автоматически.
Перед миграцией настоятельно рекомендуется сделать резервную копию вашего проекта.
Существующий проект
- Android Studio> Меню рефакторинга> Миграция в AndroidX .
- Он проанализирует и откроет окно рефрактора внизу. Принять изменения, которые будут сделаны.
Новый проект
Поместите эти флаги в свой gradle.properties
Что такое Jetifier?
Ошибки миграции
- Если вы создаете приложение и после миграции обнаруживаете ошибки, вам нужно исправить эти незначительные ошибки. Вы не застрянете там, потому что это легко исправить.
- Сторонние библиотеки не преобразуются в каталог AndroidX, но они конвертируются во время выполнения с помощью Jetifier, так что не беспокойтесь об ошибках времени компиляции, ваше приложение будет работать отлично.
Поддержка 28.0.0 это последний релиз?
Это будет последний релиз функции под android.support упаковка , и разработчикам рекомендуется перейти на AndroidX 1.0.0
Так что иди с AndroidX, потому что Android теперь будет обновлять только пакет AndroidX.
Дальнейшее чтение
androidx заменит support library после 28.0.0 . Вы должны перенести свой проект, чтобы использовать его. androidx использует Semantic Versioning . Использование AndroidX не будет путать с версией, представленной в имени библиотеки и имени пакета. Жизнь становится проще
androidx — это новая структура пакетов, позволяющая понять, какие пакеты связаны с операционной системой Android, а какие — с APK вашего приложения. В дальнейшем иерархия пакетов android. * Будет зарезервирована для пакетов Android, поставляемых с операционной системой; другие пакеты будут выпущены в новой иерархии пакетов androidx. *.
Перепроектированная структура пакета должна поощрять меньшие и более сосредоточенные библиотеки. Подробную информацию о сопоставлении артефактов вы найдете здесь.
Существуют вспомогательные библиотеки (содержащие компонент и пакеты для обратной совместимости) с именем «v7», когда поддерживаемый минимальный поддерживаемый уровень SDK равен 14, новое наименование дает четкое представление о разделении между API-интерфейсами в комплекте с платформой и используемыми библиотеками для разработчиков приложений. на разных версиях Android. Вы можете обратиться к официальному объявлению для получения дополнительной информации.
AndroidX — это проект с открытым исходным кодом, который команда Android использует для разработки, тестирования, упаковки, версии и выпуска библиотек в Jetpack.
AndroidX — это значительное улучшение по сравнению с оригинальным Библиотека поддержки Android . Как и библиотека поддержки, AndroidX поставляется отдельно от ОС Android и обеспечивает обратную совместимость между версиями Android. AndroidX полностью заменяет библиотеку поддержки, предоставляя функции четности и новые библиотеки.
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, переписывая их двоичные файлы. Флаг является ложным по умолчанию, если это не указано.
Всего несколько слов с моей стороны ко всем доступным ответам
- Как сказано в удивительном ответе @KhemRaj,
В соответствии с действующим соглашением об именах неясно, какие пакеты связаны с операционной системой Android , а какие — с APK вашего приложения ( Пакет Android ). Чтобы устранить эту путаницу, все разделенные библиотеки будут перемещены в пространство имен AndroidX 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 использует для разработки, тестирования, упаковки, версии и выпуска библиотек в Jetpack.
После нескольких часов борьбы я решил эту проблему, добавив в app / build.gradle следующее:
Поместите эти флаги в свой gradle.properties
При миграции на Android Studio файл приложения / Gradle автоматически обновляется с помощью реализаций библиотеки исправлений из стандартной библиотеки.
Android предоставляет несколько разных наборов библиотек. Один из них называется «Библиотека поддержки Android», а другой — «AndroidX». Выбор «Использовать артефакты Android. *» Означает, что мы хотим использовать AndroidX.
Сегодня многие считают, что библиотека поддержки является неотъемлемой частью разработки приложений для Android, так что ее используют 99 процентов приложений в магазине Google Play. Однако по мере роста библиотеки поддержки возникли несоответствия в соглашении об именах библиотеки.
Первоначально имя каждого пакета указывало минимальный уровень API, поддерживаемый этим пакетом, например, support-v4. Однако версия 26.0.0 библиотеки поддержки увеличила минимальный API до 14, поэтому сегодня многие из имен пакетов не имеют ничего общего с минимальным поддерживаемым уровнем API. Когда support-v4 и пакеты support-v7 имеют минимальный API-интерфейс 14, легко понять, почему люди путаются!
Чтобы устранить эту путаницу, Google в настоящее время реорганизует Библиотеку поддержки в новую структуру пакета Библиотека расширений Android (AndroidX). AndroidX будет содержать упрощенные имена пакетов, а также Maven groupIds и artifactIds, которые лучше отражают содержимое каждого пакета и поддерживаемые уровни API.
В соответствии с действующим соглашением об именах также неясно, какие пакеты связаны с операционной системой Android, а какие — с пакетом APK (комплект пакетов Android) вашего приложения. Чтобы устранить эту путаницу, все разделенные библиотеки будут перемещены в пространство имен AndroidX androidx. *, А иерархия пакетов android. * Будет зарезервирована для пакетов, поставляемых с операционной системой Android .
Это то же самое, что и версии поддержки AppCompat, но в нем меньше путаницы версий v4 и v7, поэтому очень полезно использовать различные компоненты XML-элементов android.
Источник