Share via


AndroidX 마이그레이션 Xamarin.Forms

AndroidX는 Android 지원 라이브러리를 대체합니다. 이 문서에서는 AndroidX가 존재하는 이유, AndroidX에 미치는 영향 Xamarin.Forms및 AndroidX 라이브러리를 사용하도록 애플리케이션을 마이그레이션하는 방법을 설명합니다.

Important

앱을 5.0으로 Xamarin.Forms 마이그레이션하는 경우 앱을 5.0으로 마이그레이션하는 Xamarin.Forms 어떻게 할까요? 참조하세요.

AndroidX의 기록

Android 지원 라이브러리는 이전 버전의 Android에서 최신 기능을 제공하기 위해 만들어졌습니다. 개발자가 Android 운영 체제의 모든 버전에 존재하지 않을 수 있고 이전 버전에 대해 정상적인 대체 기능을 사용할 수 있는 호환성 계층입니다. 지원 라이브러리에는 편의 및 도우미 클래스, 디버깅 및 유틸리티 도구, 작동할 다른 지원 라이브러리 클래스에 의존하는 정교한 클래스도 포함됩니다.

지원 라이브러리는 원래 단일 이진 파일이지만, 최신 앱 개발에 거의 필수적인 라이브러리 제품군으로 성장하고 발전했습니다. 다음은 지원 라이브러리에서 일반적으로 사용되는 기능입니다.

  • 지원 클래스입니다 Fragment .
  • RecyclerView목록을 관리하는 데 사용되는 입니다.
  • 65,536개 이상의 메서드를 사용하는 앱에 대한 멀티덱스 지원.
  • ActivityCompat 클래스

AndroidX는 더 이상 기본 없는 지원 라이브러리를 대체합니다. 모든 새 라이브러리 개발은 AndroidX 라이브러리에서 발생합니다. AndroidX는 의미 체계 버전 관리, 더 명확한 패키지 이름 및 일반적인 애플리케이션 아키텍처 패턴에 대한 더 나은 지원을 사용하는 재설계된 라이브러리입니다. AndroidX 버전 1.0.0은 지원 라이브러리 버전 28.0.0과 동일한 이진 버전입니다. 지원 라이브러리에서 AndroidX로의 클래스 매핑의 전체 목록은 developer.android.com 지원 라이브러리 클래스 매핑을 참조하세요.

Google은 AndroidX를 사용하여 Jetifier라는 마이그레이션 프로세스를 만들었습니다. Jetifier는 빌드 프로세스 중에 jar 바이트코드를 검사하고 앱 코드와 종속성 모두에서 지원 라이브러리 참조를 해당 AndroidX에 해당하는 항목으로 다시 매핑합니다.

Xamarin.Forms 앱에서 Android Java 앱과 마찬가지로 jar 종속성을 AndroidX로 마이그레이션해야 합니다. 그러나 Xamarin 바인딩은 올바른 기본 jar 파일을 가리키도록 마이그레이션해야 합니다. Xamarin.Forms 버전 4.5에서 자동 AndroidX 마이그레이션에 대한 지원이 추가되었습니다.

AndroidX에 대한 자세한 내용은 developer.android.com AndroidX 개요를 참조하세요.

자동 마이그레이션 Xamarin.Forms

AndroidX로 자동으로 마이그레이션하려면 Android 플랫폼 프로젝트에서 다음을 Xamarin.Forms 수행해야 합니다.

  • Android API 버전 29 이상을 대상으로 합니다.
  • 버전 4.5 이상 사용 Xamarin.Forms
  • Android 지원 라이브러리에 직접 또는 전이적 종속성이 있습니다.

프로젝트에서 이러한 설정을 확인했으면 Visual Studio 2019에서 Android 앱을 빌드합니다. 빌드 프로세스 중에 IL(중간 언어)이 검사되고 지원 라이브러리 종속성 및 바인딩이 AndroidX 종속성과 교환됩니다. 애플리케이션에 빌드에 필요한 모든 AndroidX 종속성이 있는 경우 빌드 프로세스에 차이가 없습니다.

Important

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 패키지는 Visual Studio의 NuGet 패키지 관리자 통해 설치하거나 Android .csproj 파일을 편집하여 오류에 나열된 XML 항목을 포함 PackageReference 하도록 설치할 수 있습니다.

누락된 패키지가 해결되면 프로젝트를 다시 빌드하면 누락된 패키지가 로드되고 지원 라이브러리 종속성 대신 AndroidX 종속성을 사용하여 프로젝트가 컴파일됩니다.

참고 항목

프로젝트 및 프로젝트 종속성이 Android 지원 라이브러리를 참조하지 않는 경우 마이그레이션 프로세스는 아무 작업도 수행하지 않으며 실행되지 않습니다.