Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

ICU4J Android Framework API

ICU4J merupakan serangkaian pustaka Java sumber terbuka yang banyak digunakan dan menyediakan Unicode serta dukungan globalisasi untuk aplikasi perangkat lunak. Mulai Android 7.0 (API level 24), Android mengekspos subset ICU4J API yang dapat dikembangkan oleh developer aplikasi untuk digunakan pada paket android.icu. API ini menggunakan data pelokalan yang ada pada perangkat. Hasilnya, Anda bisa mengurangi footprint APK dengan tidak mengompilasi pustaka ICU4J ke APK; sebagai gantinya, cukup memanggilnya dalam kerangka kerja. (Dalam hal ini, Anda mungkin perlu menyediakan beberapa versi APK Anda, sehingga pengguna yang menjalankan versi Android lebih rendah dari Android 7.0 (API Level 24) bisa mengunduh versi aplikasi yang berisi pustaka ICU4J.)

Dokumen ini diawali dengan menyediakan beberapa informasi dasar mengenai level Android API minimum yang diperlukan untuk mendukung pustaka-pustaka ini. Kemudian dijelaskan tentang apa yang perlu Anda ketahui tentang implementasi ICU4J spesifik Android. Terakhir, Anda akan diberi tahu cara menggunakan ICU4J API dalam kerangka kerja Android.

Hubungan dengan ICU4J

Android mengekspos subset ICU4J API lewat paket android.icu, bukannya com.ibm.icu. Kerangka kerja Android dapat memilih untuk tidak mengekspos ICU4J API karena beragam alasan; misalnya, Android tidak mengekspos beberapa API yang tidak digunakan lagi atau yang dideklarasikan belum stabil oleh tim ICU. Karena tim ICU tidak lagi menggunakan API di masa mendatang, Android juga akan menandainya sebagai tidak digunakan lagi namun akan terus menyertakannya.

Tabel 1. Versi ICU dan CLDR yang digunakan di Android.

Level Android API Versi ICU Versi CLDR
Android 7.0 (API level 24) 56 28

Inilah beberapa hal penting yang harus diperhatikan:

  • ICU4J Android Framework API tidak menyertakan semua ICU4J API.
  • Developer NDK harus mengetahui bahwa Android ICU4C tidak didukung.
  • API dalam kerangka kerja Android tidak menggantikan dukungan Android untuk melokalkan dengan sumber daya.

Migrasi ke paket android.icu dari com.ibm.icu

Jika Anda sudah menggunakan ICU4J API dalam aplikasi, dan android.icu API memenuhi persyaratan Anda, maka migrasi ke API kerangka kerja mengharuskan Anda untuk mengubah impor Java dari com.ibm.icu ke android.icu. Kemudian Anda bisa membuang salinan file ICU4J dari APK.

Catatan: API kerangka kerja ICU4J menggunakan namespace android.icu sebagai ganti com.ibm.icu. Hal ini untuk menghindari konflik namespace di APK yang berisi pustaka com.ibm.icu sendiri.

Migrasi ke API android.icu dari Android SDK API lainnya

Beberapa kelas dalam paket java dan android memiliki padanannya dengan yang ditemukan di ICU4J. Akan tetapi, ICU4J sering kali menyediakan dukungan yang lebih luas untuk standar dan bahasa.

Inilah beberapa contoh untuk membantu Anda memulai:

Kelas Alternatif
java.lang.Character android.icu.lang.UCharacter
java.text.BreakIterator android.icu.text.BreakIterator
java.text.DecimalFormat android.icu.text.DecimalFormat
java.util.Calendar android.icu.util.Calendar
android.text.BidiFormatter android.icu.text.Bidi
android.text.format.DateFormat android.icu.text.DateFormat
android.text.format.DateUtils android.icu.text.DateFormat android.icu.text.RelativeDateTimeFormatter

Lisensi

ICU4J dirilis dengan lisensi ICU. Untuk detailnya, lihat Panduan Pengguna ICU.