Migração do AndroidX no Xamarin.Forms
O AndroidX substitui a Biblioteca de Suporte do Android. Este artigo explica por que o AndroidX existe, como ele afeta Xamarin.Formse como migrar seu aplicativo para usar as bibliotecas AndroidX.
Importante
Se você estiver migrando um aplicativo para o Xamarin.Forms 5.0, consulte Como fazer migrar meu aplicativo para Xamarin.Forms 5.0?.
Histórico do AndroidX
A Biblioteca de Suporte do Android foi criada para fornecer recursos mais recentes em versões mais antigas do Android. É uma camada de compatibilidade que permite que os desenvolvedores usem funcionalidades que podem não existir em todas as versões do sistema operacional Android e têm fallbacks normais para versões mais antigas. A Biblioteca de Suporte também inclui classes auxiliares e de conveniência, ferramentas de depuração e utilitários e classes sofisticadas que dependem de outras classes da Biblioteca de Suporte para funcionar.
Embora a Biblioteca de Suporte fosse originalmente um único binário, ela cresceu e evoluiu para um conjunto de bibliotecas, que são quase essenciais para o desenvolvimento de aplicativos modernos. Esses são alguns recursos comumente usados da Biblioteca de Suporte:
- A
Fragment
classe de suporte. - O
RecyclerView
, usado para gerenciar listas longas. - Suporte multidex para aplicativos com mais de 65.536 métodos.
- A classe
ActivityCompat
.
O AndroidX é uma substituição para a Biblioteca de Suporte, que não é mais mantida – todo o novo desenvolvimento de biblioteca ocorrerá na biblioteca AndroidX. O AndroidX é uma biblioteca reprojetada que usa controle de versão semântico, nomes de pacote mais claros e melhor suporte para padrões comuns de arquitetura de aplicativo. O AndroidX versão 1.0.0 é o equivalente binário à Biblioteca de Suporte versão 28.0.0. Para obter uma lista completa de mapeamentos de classe da Biblioteca de Suporte para AndroidX, consulte Mapeamentos de classe da Biblioteca de Suporte no developer.android.com.
O Google criou um processo de migração chamado Jetifier com AndroidX. O Jetifier inspeciona o código de byte jar durante o processo de build e remapea as referências da Biblioteca de Suporte, tanto no código do aplicativo quanto em dependências, para o equivalente do AndroidX.
Em um Xamarin.Forms aplicativo, assim como em um aplicativo Java Android, as dependências jar devem ser migradas para o AndroidX. No entanto, as associações Xamarin também devem ser migradas para apontar para os arquivos jar corretos e subjacentes. Xamarin.Forms adição de suporte para migração automática do AndroidX na versão 4.5.
Para obter mais informações sobre o AndroidX, consulte Visão geral do AndroidX sobre developer.android.com.
Migração automática no Xamarin.Forms
Para migrar automaticamente para o AndroidX, um Xamarin.Forms projeto de plataforma Android deve:
- API do Android de destino versão 29 ou superior.
- Use Xamarin.Forms a versão 4.5 ou superior.
- Tenha dependências diretas ou transitivas em bibliotecas de suporte do Android.
Depois de confirmar essas configurações em seu projeto, crie o aplicativo Android no Visual Studio 2019. Durante o processo de build, a IL (Linguagem Intermediária) é inspecionada e as dependências e associações da Biblioteca de Suporte são trocadas por dependências do AndroidX. Se o aplicativo tiver todas as dependências do AndroidX necessárias para compilar, você não observará diferenças no processo de build.
Importante
A migração manual para o AndroidX resultará no processo de build mais rápido para seu aplicativo e é a abordagem recomendada para a migração do AndroidX. Isso envolve substituir dependências de biblioteca de suporte por dependências do AndroidX e atualizar seu código para consumir tipos AndroidX. Para obter mais informações, consulte Usar tipos AndroidX.
Se forem detectadas dependências do AndroidX que não fazem parte do projeto, um erro de build será relatado que indica quais pacotes AndroidX estão ausentes. Um exemplo de erro de build é mostrado abaixo:
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" />
Os pacotes NuGet ausentes podem ser instalados por meio do Gerenciador de Pacotes NuGet no Visual Studio ou instalados editando o arquivo .csproj do Android para incluir os PackageReference
itens XML listados no erro.
Depois que os pacotes ausentes forem resolvidos, a recompilação do projeto carregará os pacotes ausentes e seu projeto será compilado usando dependências do AndroidX em vez de dependências da Biblioteca de Suporte.
Observação
Se o projeto e as dependências do projeto não fizerem referência às Bibliotecas de Suporte do Android, o processo de migração não fará nada e não será executado.
Links relacionados
- Como fazer migrar meu aplicativo para Xamarin.Forms 5.0?
- Visão geral da Biblioteca de Suporte do Android sobre developer.android.com
- Visão geral do AndroidX sobre developer.android.com
- Mapeamentos de classe do AndroidX
- Assemblies AndroidX