Bagikan melalui


Migrasi AndroidX di Xamarin.Forms

AndroidX menggantikan Android Support Library. Artikel ini menjelaskan mengapa AndroidX ada, dampaknya Xamarin.Forms, dan cara memigrasikan aplikasi Anda untuk menggunakan pustaka AndroidX.

Penting

Jika Anda memigrasikan aplikasi ke Xamarin.Forms 5.0, lihat Bagaimana cara memigrasikan aplikasi saya ke Xamarin.Forms 5.0?.

Sejarah AndroidX

Android Support Library dibuat untuk menyediakan fitur yang lebih baru pada versi Android yang lebih lama. Ini adalah lapisan kompatibilitas yang memungkinkan pengembang untuk menggunakan fungsionalitas yang mungkin tidak ada di semua versi sistem operasi Android dan memiliki fallback yang anggun untuk versi yang lebih lama. Pustaka Dukungan juga mencakup kelas kenyamanan dan pembantu, alat penelusuran kesalahan dan utilitas, dan kelas canggih yang bergantung pada kelas Pustaka Dukungan lainnya untuk berfungsi.

Sementara Support Library awalnya adalah biner tunggal, ia telah tumbuh dan berkembang menjadi serangkaian pustaka, yang hampir penting untuk pengembangan aplikasi modern. Ini adalah beberapa fitur yang umum digunakan dari Pustaka Dukungan:

  • Kelas Fragment dukungan.
  • RecyclerView, digunakan untuk mengelola daftar panjang.
  • Dukungan multidex untuk aplikasi dengan lebih dari 65.536 metode.
  • Kelas ActivityCompat.

AndroidX adalah pengganti Support Library, yang tidak lagi dipertahankan - semua pengembangan pustaka baru akan terjadi di pustaka AndroidX. AndroidX adalah pustaka yang didesain ulang yang menggunakan penerapan versi semantik, nama paket yang lebih jelas, dan dukungan yang lebih baik untuk pola arsitektur aplikasi umum. AndroidX versi 1.0.0 adalah biner yang setara dengan Support Library versi 28.0.0. Untuk daftar lengkap pemetaan kelas dari Support Library ke AndroidX, lihat Pemetaan kelas Support Library di developer.android.com.

Google membuat proses migrasi yang disebut Jetifier dengan AndroidX. Jetifier memeriksa bytecode jar selama proses build dan memetakan ulang referensi Support Library, baik dalam kode aplikasi maupun dalam dependensi, ke androidX yang setara.

Dalam aplikasi Xamarin.Forms , sama seperti di aplikasi Android Java, dependensi jar harus dimigrasikan ke AndroidX. Namun, pengikatan Xamarin juga harus dimigrasikan untuk menunjuk ke file jar yang benar dan mendasar. Xamarin.Forms menambahkan dukungan untuk migrasi AndroidX otomatis di versi 4.5.

Untuk informasi selengkapnya tentang AndroidX, lihat Gambaran umum AndroidX tentang developer.android.com.

Migrasi otomatis di Xamarin.Forms

Untuk bermigrasi secara otomatis ke AndroidX, Xamarin.Forms proyek platform Android harus:

  • Targetkan Android API versi 29 atau lebih tinggi.
  • Gunakan Xamarin.Forms versi 4.5 atau yang lebih tinggi.
  • Memiliki dependensi langsung atau transitif pada pustaka dukungan Android.

Setelah mengonfirmasi pengaturan ini di proyek, buat aplikasi Android di Visual Studio 2019. Selama proses build, Bahasa Perantara (IL) diperiksa dan dependensi dan pengikatan Pustaka Dukungan ditukar dengan dependensi AndroidX. Jika aplikasi Anda memiliki semua dependensi AndroidX yang diperlukan untuk dibuat, Anda tidak akan melihat perbedaan dalam proses build.

Penting

Migrasi manual ke AndroidX akan menghasilkan proses build tercepat untuk aplikasi Anda, dan merupakan pendekatan yang direkomendasikan untuk migrasi AndroidX. Ini melibatkan penggantian dependensi pustaka dukungan dengan dependensi AndroidX, dan memperbarui kode Anda untuk menggunakan jenis AndroidX. Untuk informasi selengkapnya, lihat Menggunakan jenis AndroidX.

Jika dependensi AndroidX terdeteksi yang bukan bagian dari proyek, kesalahan build dilaporkan yang menunjukkan paket AndroidX mana yang hilang. Contoh kesalahan build ditunjukkan di bawah ini:

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

Paket NuGet yang hilang dapat diinstal melalui Manajer Paket NuGet di Visual Studio, atau diinstal dengan mengedit file .csproj Android Anda untuk menyertakan PackageReference item XML yang tercantum dalam kesalahan.

Setelah paket yang hilang diselesaikan, membangun kembali proyek memuat paket yang hilang dan proyek Anda dikompilasi menggunakan dependensi AndroidX alih-alih dependensi Support Library.

Catatan

Jika proyek Anda, dan dependensi proyek, jangan mereferensikan Android Support Libraries, proses migrasi tidak melakukan apa pun dan tidak dijalankan.