Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
AndroidX заменяет библиотеку поддержки Android. В этой статье объясняется, почему AndroidX существует, как это влияет Xamarin.Formsи как перенести приложение для использования библиотек AndroidX.
Внимание
Если вы переносите приложение на Xamarin.Forms 5.0, ознакомьтесь с Разделы справки миграции приложения на Xamarin.Forms 5.0?.
История AndroidX
Библиотека поддержки Android была создана для предоставления новых функций в более старых версиях Android. Это уровень совместимости, который позволяет разработчикам использовать функциональные возможности, которые могут не существовать во всех версиях операционной системы Android и имеют изящные резервные варианты для более старых версий. Библиотека поддержки также включает в себя удобные и вспомогательные классы, средства отладки и служебные программы, а также сложные классы, которые зависят от других классов библиотек поддержки для работы.
Хотя библиотека поддержки изначально была одним двоичным файлом, она выросла и превратилась в набор библиотек, которые почти важны для современной разработки приложений. Это некоторые часто используемые функции из библиотеки поддержки:
- Класс поддержки
Fragment. - ,
RecyclerViewиспользуемый для управления длинными списками. - Поддержка multidex для приложений с более чем 65 536 методами.
- Класс
ActivityCompat.
AndroidX является заменой библиотеки поддержки, которая больше не поддерживается- все новые разработки библиотеки будут выполняться в библиотеке AndroidX. AndroidX — это переработанная библиотека, которая использует семантику управления версиями, более четкие имена пакетов и улучшенную поддержку распространенных шаблонов архитектуры приложений. AndroidX версии 1.0.0 является двоичным эквивалентом библиотеки поддержки версии 28.0.0. Полный список сопоставлений классов из библиотеки поддержки с AndroidX см. в разделе "Сопоставления классов библиотеки поддержки" на developer.android.com.
Google создал процесс миграции с помощью Jetifier с AndroidX. Jetifier проверяет jar-байт-код во время процесса сборки и переназначает ссылки на библиотеку поддержки, как в коде приложения, так и в зависимости в эквиваленте AndroidX.
Xamarin.Forms В приложении, как и в приложении Java для Android, необходимо перенести jar-зависимости в AndroidX. Однако привязки Xamarin также должны быть перенесены, чтобы указать на правильные базовые JAR-файлы. Xamarin.Forms добавлена поддержка автоматической миграции AndroidX в версии 4.5.
Дополнительные сведения об AndroidX см. в обзоре AndroidX на developer.android.com.
Автоматическая миграция в Xamarin.Forms
Чтобы автоматически выполнить миграцию в AndroidX, Xamarin.Forms необходимо выполнить проект платформы Android:
- Целевая версия API Android версии 29 или более поздней.
- Используйте Xamarin.Forms версию 4.5 или более поздней.
- Имеют прямые или транзитивные зависимости в библиотеках поддержки Android.
После подтверждения этих параметров в проекте создайте приложение Android в Visual Studio 2019. Во время сборки проверяется промежуточный язык (IL), а зависимости библиотеки поддержки и привязки переключаются с зависимостями AndroidX. Если в приложении есть все зависимости AndroidX, необходимые для сборки, вы не заметите никаких различий в процессе сборки.
Внимание
Миграция вручную в AndroidX приведет к быстрому процессу сборки приложения и рекомендуется использовать для миграции AndroidX. Это включает замену зависимостей библиотеки поддержки зависимостями AndroidX и обновление кода для использования типов AndroidX. Дополнительные сведения см. в разделе "Использование типов AndroidX".
Если обнаружены зависимости AndroidX, которые не входят в проект, сообщается об ошибке сборки, указывающая, какие пакеты AndroidX отсутствуют. Ниже показан пример ошибки сборки:
Could not find 37 AndroidX assemblies, make sure to install the following NuGet packages:
- Xamarin.AndroidX.Lifecycle.LiveData
- Xamarin.AndroidX.Browser
- Xamarin.Google.Android.Material
- Xamarin.AndroidX.Legacy.Supportv4
You can also copy and paste the following snippit into your .csproj file:
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0-rc1" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.0.0-rc1" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.0.0-rc1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0-rc1" />
Отсутствующие пакеты NuGet можно установить с помощью диспетчер пакетов NuGet в Visual Studio или установить, изменив файл Android CSPROJ, чтобы включить PackageReference элементы XML, перечисленные в ошибке.
После устранения отсутствующих пакетов перестроение проекта загружает отсутствующие пакеты и проект компилируется с помощью зависимостей AndroidX вместо зависимостей библиотеки поддержки.
Примечание.
Если проект и зависимости проекта не ссылаются на библиотеки поддержки Android, процесс миграции ничего не выполняет и не выполняется.
Дополнительные ссылки
- Разделы справки перенести приложение на Xamarin.Forms 5.0?
- Общие сведения о библиотеке поддержки Android на developer.android.com
- Обзор AndroidX в developer.android.com
- Сопоставления классов AndroidX
- Сборки AndroidX