Sdílet prostřednictvím


Migrace AndroidX do Xamarin.Forms

AndroidX nahrazuje knihovnu podpory pro Android. Tento článek vysvětluje, proč androidX existuje, jak to ovlivňuje Xamarin.Formsa jak migrovat aplikaci, aby používala knihovny AndroidX.

Důležité

Pokud migrujete aplikaci na Xamarin.Forms verzi 5.0, přečtěte si, Návody migrovat aplikaci na Xamarin.Forms verzi 5.0?.

Historie AndroidX

Knihovna podpory pro Android byla vytvořena, aby poskytovala novější funkce ve starších verzích Androidu. Jedná se o vrstvu kompatibility, která vývojářům umožňuje používat funkce, které nemusí existovat ve všech verzích operačního systému Android a mají elegantní náhradní verze pro starší verze. Knihovna podpory také zahrnuje pohodlí a pomocné třídy, ladicí a utility nástroje a sofistikované třídy, které závisí na jiných třídách knihovny podpory, které fungují.

I když byla knihovna podpory původně jedním binárním souborem, vyvinula se a vyvinula do sady knihoven, které jsou téměř nezbytné pro vývoj moderních aplikací. Toto jsou některé běžně používané funkce z knihovny podpory:

  • Třída Fragment podpory.
  • Slouží RecyclerViewke správě dlouhých seznamů.
  • Podpora multidexu pro aplikace s více než 65 536 metodami.
  • Třída ActivityCompat .

AndroidX je náhradou za knihovnu podpory, která se už neudržuje – v knihovně AndroidX bude probíhat veškerý vývoj nových knihoven. AndroidX je přepracovaná knihovna, která používá sémantické správy verzí, jasnější názvy balíčků a lepší podporu běžných vzorů architektury aplikací. AndroidX verze 1.0.0 je binární ekvivalent knihovny podpory verze 28.0.0. Úplný seznam mapování tříd z knihovny podpory na AndroidX najdete v tématu Mapování tříd knihovny podpory na developer.android.com.

Google vytvořil proces migrace s názvem Jetifier s AndroidX. Jetifier během procesu sestavení zkontroluje bajtový kód JAR a přemapuje odkazy na knihovnu podpory v kódu aplikace i v závislostech na ekvivalent AndroidX.

Xamarin.Forms V aplikaci, stejně jako v aplikaci Pro Android Java, musí být závislosti JAR migrovány do AndroidX. Vazby Xamarinu se ale musí migrovat také tak, aby odkazovaly na správné podkladové soubory JAR. Xamarin.Forms přidání podpory pro automatickou migraci AndroidX ve verzi 4.5.

Další informace o AndroidX najdete v přehledu AndroidX na developer.android.com.

Automatická migrace v Xamarin.Forms

Pokud chcete automaticky migrovat na AndroidX, Xamarin.Forms projekt platformy Android musí:

  • Cílení na rozhraní ANDROID API verze 29 nebo novější
  • Použijte Xamarin.Forms verzi 4.5 nebo vyšší.
  • Mají přímé nebo přechodné závislosti na knihovnách podpory Androidu.

Po potvrzení těchto nastavení v projektu sestavte aplikaci pro Android v sadě Visual Studio 2019. Během procesu sestavení se prověří zprostředkující jazyk (IL) a závislosti a vazby knihovny podpory se prohodí se závislostmi AndroidX. Pokud má vaše aplikace všechny závislosti AndroidX potřebné k sestavení, nebudete si všimnout žádných rozdílů v procesu sestavení.

Důležité

Ruční migrace na AndroidX povede k nejrychlejšímu procesu sestavení pro vaši aplikaci a je doporučeným postupem pro migraci AndroidX. To zahrnuje nahrazení závislostí knihovny pomocí závislostí AndroidX a aktualizaci kódu na využívání typů AndroidX. Další informace naleznete v tématu Použití typů AndroidX.

Pokud jsou zjištěny závislosti AndroidX, které nejsou součástí projektu, zobrazí se chyba sestavení, která indikuje, které balíčky AndroidX chybí. Příklad chyby sestavení je uvedený níže:

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" />

Chybějící balíčky NuGet je možné nainstalovat buď prostřednictvím Správce balíčků NuGet v sadě Visual Studio, nebo můžete nainstalovat úpravou souboru .csproj androidu tak, aby zahrnovaly PackageReference položky XML uvedené v chybě.

Po vyřešení chybějících balíčků načte opětovné sestavení projektu chybějící balíčky a projekt se zkompiluje pomocí závislostí AndroidX místo závislostí knihovny podpory.

Poznámka:

Pokud projekt a závislosti projektu neodkazujte na knihovny podpory Androidu, proces migrace nic neprovádí a nespustí se.