Aracılığıyla paylaş


uygulamasında AndroidX geçişi Xamarin.Forms

AndroidX, Android Destek Kitaplığı'nın yerini alır. Bu makalede AndroidX'in neden var olduğu, uygulamasının üzerindeki etkisi Xamarin.Formsve uygulamanızı AndroidX kitaplıklarını kullanacak şekilde geçirme işlemleri açıklanmaktadır.

Önemli

Bir uygulamayı 5.0'a Xamarin.Forms geçiriyorsanız bkz. Uygulamamı 5.0'a Xamarin.Forms Nasıl yaparım? geçirme?

AndroidX geçmişi

Android Destek Kitaplığı, Android'in eski sürümlerinde daha yeni özellikler sağlamak için oluşturulmuştur. Geliştiricilerin Android işletim sisteminin tüm sürümlerinde mevcut olmayan ve eski sürümler için düzgün geri dönüşlere sahip olabilecek işlevleri kullanmasına olanak tanıyan bir uyumluluk katmanıdır. Destek Kitaplığı ayrıca kolaylık ve yardımcı sınıflar, hata ayıklama ve yardımcı program araçları ile çalışması için diğer Destek Kitaplığı sınıflarına bağımlı olan gelişmiş sınıfları içerir.

Destek Kitaplığı başlangıçta tek bir ikili olsa da, büyüdü ve modern uygulama geliştirme için neredeyse temel olan bir kitaplık paketine dönüştü. Destek Kitaplığı'ndan yaygın olarak kullanılan bazı özellikler şunlardır:

  • Destek Fragment sınıfı.
  • RecyclerViewuzun listeleri yönetmek için kullanılan .
  • 65.536'dan fazla yöntemi olan uygulamalar için Multidex desteği.
  • Sınıfı ActivityCompat .

AndroidX, artık bakım yapılmayan Destek Kitaplığı'nın yerine geçer. Tüm yeni kitaplık geliştirmeleri AndroidX kitaplığında gerçekleşir. AndroidX, anlamsal sürüm oluşturma, daha net paket adları ve yaygın uygulama mimarisi desenleri için daha iyi destek kullanan yeniden tasarlanmış bir kitaplıktır. AndroidX sürüm 1.0.0, Destek Kitaplığı sürüm 28.0.0 ile eşdeğer ikilidir. Destek Kitaplığı'ndan AndroidX'e sınıf eşlemelerinin tam listesi için bkz . developer.android.com'da Destek Kitaplığı sınıf eşlemeleri .

Google, AndroidX ile Jetifier adlı bir geçiş işlemi oluşturdu. Jetifier, derleme işlemi sırasında jar bayt kodunu inceler ve hem uygulama kodundaki hem de bağımlılıklardaki Destek Kitaplığı başvurularını AndroidX eşdeğerleriyle yeniden eşler.

Android Java uygulamasında olduğu gibi bir Xamarin.Forms uygulamada da jar bağımlılıkları AndroidX'e geçirilmelidir. Ancak, Xamarin bağlamaları da doğru, temel jar dosyalarına işaret etmek için geçirilmelidir. Xamarin.Forms sürüm 4.5'te otomatik AndroidX geçişi desteği eklendi.

AndroidX hakkında daha fazla bilgi için bkz . developer.android.com üzerinde AndroidX'e genel bakış .

uygulamasında otomatik geçiş Xamarin.Forms

AndroidX'e otomatik olarak geçiş yapmak için bir Xamarin.Forms Android platformu projesinin şunları yapması gerekir:

  • Hedef Android API sürümü 29 veya üzeri.
  • Sürüm 4.5 veya üzerini kullanın Xamarin.Forms .
  • Android destek kitaplıklarında doğrudan veya geçişli bağımlılıklara sahip olun.

Projenizde bu ayarları onayladıktan sonra, Android uygulamasını Visual Studio 2019'da derleyin. Derleme işlemi sırasında Ara Dil (IL) incelenir ve Destek Kitaplığı bağımlılıkları ve bağlamaları AndroidX bağımlılıklarıyla değiştirilir. Uygulamanızda derlemek için gereken tüm AndroidX bağımlılıkları varsa derleme işleminde hiçbir fark fark etmezsiniz.

Önemli

AndroidX'e el ile geçiş uygulamanız için en hızlı derleme işlemine neden olur ve AndroidX geçişi için önerilen yaklaşımdır. Bu, destek kitaplığı bağımlılıklarını AndroidX bağımlılıklarıyla değiştirmeyi ve kodunuzu AndroidX türlerini kullanacak şekilde güncelleştirmeyi içerir. Daha fazla bilgi için bkz . AndroidX türlerini kullanma.

Projenin parçası olmayan AndroidX bağımlılıkları algılanırsa, hangi AndroidX paketlerinin eksik olduğunu gösteren bir derleme hatası bildirilir. Aşağıda örnek bir derleme hatası gösterilmiştir:

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

Eksik NuGet paketleri Visual Studio'daki NuGet Paket Yöneticisi aracılığıyla yüklenebilir veya Android .csproj dosyanız hatada listelenen XML öğelerini içerecek PackageReference şekilde düzenlenerek yüklenebilir.

Eksik paketler çözümlendikten sonra projeyi yeniden derlemek eksik paketleri yükler ve projeniz Destek Kitaplığı bağımlılıkları yerine AndroidX bağımlılıkları kullanılarak derlenir.

Not

Projeniz ve proje bağımlılıklarınız Android Destek Kitaplıklarına başvurmuyorsa, geçiş işlemi hiçbir şey yapmaz ve yürütülmüyor.