Android, Yoğun bakım ünitesi kitaplığı ve Unicode ve diğer uluslararasılaştırma özelliklerini sağlamak için CLDR projesi destek. Bu sayfanın Unicode ve uluslararasılaştırma desteği ile ilgili açıklaması şu bölümler: Android 6.0 (API düzeyi 23) ve önceki sürümler, Android 7.0 (API düzeyi 24) ve sonraki sürümler.
Android 6.0 (API düzeyi 23) ile Unicode ve uluslararasılaştırma desteği
Android platformu, çeşitli uygulamalar için ICU ve CLDR'yi kullanır.
Latin ve Latin olmayan ortografileri ele alma dersleri
Locale
, Character
ve birçok alt sınıfı
java.text
. Şundan daha fazla uluslararasılaştırma işlevleri gerektiren bir uygulama:
ve Android 6.0 aracılığıyla platformun sürümlerini hedefler
(API düzeyi 23) ICU kitaplığını içermelidir.
Sürüm oluşturma
Android platformunun sonraki sürümleri, ICU'nun yeni sürümlerine karşılık gelir ve ilgili CLDR ve Unicode sürümlerini kapsar. Tablo 1'de bu yazışmalar gösterilmektedir .
Tablo 1. Kullanılan ICU ve CLDR sürümleri .
Platform (API düzeyi) | yoğun bakım ünitesi | CLDR | Unicode |
---|---|---|---|
Android 1.5–2.0 (API düzeyleri 3-7) | 3,8 | 1,5 | 5,0 |
Android 2.2 (API düzeyi 8) | 4,2 | 1,7 | 5.1 |
Android 2.3–3.0 (API düzeyleri 9-13) | 4.4 | 1,8 | 5.2 |
Android 4.0 (API düzeyleri 14-15) | 4.6 | 1,9 | 6.0 |
Android 4.1 (API düzeyleri 16-17) | 4.8 | 2,0 | 6.0 |
Android 4.3 (API düzeyi 18) | 50 | 22.1. | 6.2 |
Android 4.4 (API düzeyleri 19-20) | 51 | 23 | 6.2 |
Android 5.0 (API düzeyleri 21-22) | 53) | 25 | 6,3 |
Android 6.0 (API düzeyi 23) | 55,1 | 27.0.1 | 7,0 |
Android çerçevesi, Unicode ve uluslararasılaştırma için daha kapsamlı destek sağlar . Bu sayfanın sonraki bölümü bu destekle ilgili ayrıntıları sağlar.
Android 7.0 (API düzeyi 24) ve sonraki sürümlerde Unicode ve uluslararasılaştırma desteği
Android 7.0 (API düzeyi 24) ve sonraki sürümler için Android platformu
Uygulama geliştiriciler için ICU4J API'lerinin bir alt kümesini sunar
android.icu
paketi kapsamında kullanılacak.
ICU4J, Unicode'u sağlayan açık kaynaklı ve yaygın bir şekilde kullanılan Java kitaplıkları setidir
ve uluslararası hale getirme desteği sunar.
ICU4J API'ler, yerelleştirme verileri olup olmadığını kontrol edin. Sonuç olarak, uygulamanızın ayak izini artırabilirsiniz. Bunun yerine çağrıştırabilirler. Bunu yaparsanız birden fazla sürüm APK'nızın sürümü, böylece Android'in Android 7.0 (API düzeyi 24) uygulamanın ICU4J kitaplıklarını içeren bir sürümünü indirebilir.
Bu bölüm, başlangıçla ilgili olarak minimum düzeyde bazı temel bilgiler sağlayarak Bu kitaplıkları desteklemek için gereken Android API düzeyleri. Ardından, kullanıcılar hakkında bilmeniz gereken her şeyi öğreneceğiz. En son, , Android çerçevesinde ICU4J API'lerinin nasıl kullanılacağını anlatır.
Android'de ICU4J
Android, ICU4J API'lerinin bir alt kümesini
android.icu
paketi, com.ibm.icu
yerine. Biraz
ICU4J API'leri, Android çerçevesi tarafından sunulmaz.
API'lerin kullanımdan kaldırılması gibi nedenlerle
veya kararlı olarak bildirilmemiştir. ICU ekibi gelecekte API'leri kullanımdan kaldırdığında
Android ayrıca bunları "desteği sonlandırıldı" olarak işaretler ancak eklemeye devam eder.
Aşağıda birkaç hatırlatma bulabilirsiniz:
- ICU4J Android çerçevesi API'leri tüm ICU4J API'lerini içermez.
- Android çerçevesindeki API'ler, Android'in şununla yerelleştirme: kaynaklar bölümüne göz atın.
- Bazı durumlarda Android yapısı
çok işe yarıyor. Bu, örneğin
android.text
sınıfı için geçerlidir. emoji desteği.
com.ibm.icu'dan android.icu paketine taşıyın
Uygulamanızda zaten ICU4J API'lerini kullanıyorsanız ve
android.icu
API ihtiyaçlarınızı karşıladıktan sonra
çerçeve API'leri, Java içe aktarma işlemlerinizi değiştirmenizi gerektirir
com.ibm.icu
-android.icu
. Ardından
Size ait ICU4J dosyaları kopyasını uygulamadan kaldırın.
Not: ICU4J çerçeve API'leri, android.icu
ad alanı yerine com.ibm.icu
kullanın. Bu işlem, ad alanından kaçınmak için
kendi com.ibm.icu
kitaplıklarını içeren uygulamalarda çakışmalar olur.
Diğer Android SDK API'lerinden android.icu API'lerine geçiş yapın
java
ve android
paketlerindeki bazı sınıflarda
ICU4J'de bulunanlara eşdeğerdir. Ancak ICU4J genelde daha geniş
standartlar ve diller için destek sağlar.
Tablo 2'de, başlangıç aşamasında bu eş değer değerlere ilişkin bazı örnekler verilmiştir:
Tablo 2.Android ve Java ICU4J sınıfları
Sınıf | Alternatifler |
---|---|
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
|
Android'de ICU4C
Android, libicu.so
kitaplığı aracılığıyla ICU4C API'lerinin bir alt kümesini sunar.
(libicuuc.so
veya libicui18n.so
yerine). API'ler kullanılabilir.
için Android 12'den (API düzeyi 31) yararlanabilirsiniz. NDK başlıkları
NDK sürümü r22b.
Android NDK üzerinden hiçbir C++ API'si açığa çıkarılmaz. Bazı C API'leri kullanılamıyor.
Sürüm oluşturma
Android platformunun sonraki sürümleri, ICU'nun yeni sürümlerine karşılık gelir
ve ilgili CLDR ve Unicode sürümlerini kapsar. Tablo 3’te ise bu yazışmalar gösterilmektedir.
için Android 7.0 (API düzeyi 24) sürümünü kullanın. Şunu kullanın:
Yoğun bakım ünitesini edinmek için VersionInfo.ICU_VERSION
API (Android 7.0'dan itibaren kullanılabilir)
sürüm bilgilerini de yükleyebilirsiniz.
Tablo 3. Android sürümlerinde kullanılan ICU ve CLDR sürümleri .
Platform (API düzeyi) | yoğun bakım ünitesi | CLDR | Unicode |
---|---|---|---|
Android 7.0 - 7.1 (API düzeyleri 24 - 25) | 56 | 28 | 8.0 |
Android 8.0 - 8.1 (API düzeyleri 26 - 27) | 58,2 | 30.0.3 | 9.0 |
Android 9 (API düzeyi 28) | 60,2 | 32.0.1 | 10.0 |
Android 10 (API düzeyi 29) | 63,2 | 34 | 11.0 |
Android 11 (API düzeyi 30) | 66,1 | 36 | 13,0 |
Android 12 (API düzeyi 31-32) | 68,2 | 38,1 | 13,0 |
Android 13 (API düzeyi 33) | 70,1 | 40 | 14,0 |
Android 14 (API düzeyi 34) | 72,1 | 42 | 15,0 |
Android 15 (API düzeyi 35) | 75,1 | 45 | 15.1 |
24 sa./12 sa. saat biçimi ayarı
Android'deki ICU'da, kullanıcının şu kaynaktan alınan 24 saat/12 saat saat biçimi ayarı dikkate alınmaz.DateFormat.is24HourFormat()
değerleridir.
Bu ayarı kullanmak için
DateFormat
veya
DateUtils
saat biçimlendirme yöntemlerini kullanın veya uygun saat kalıbıyla ICU saat biçimlendirme kalıplarını kullanın
sembolleri (12 saat için 'h', 24 saat için 'H').is24HourFormat()
Örneğin, bu kod kullanıcının 12 saat/24 saat ayarını gözlemleyen geçerli saati içeren bir dize oluşturur:
Kotlin
val skeleton: String = if (DateFormat.is24HourFormat(context)) "Hm" else "hm" val formattedTime: String = android.icu.text.DateFormat.getInstanceForSkeleton( skeleton, Locale.getDefault()).format(Date() )
Java
String skeleton = DateFormat.is24HourFormat(context) ? "Hm" : "hm"; String formattedTime = android.icu.text.DateFormat.getInstanceForSkeleton(skeleton, Locale.getDefault()).format(new Date());
Transliteratörün Kararlılığı
Android 10 (API düzeyi 29) sürümünden itibaren,Transliterator
bir biçimden diğerine metne dönüştürmek için sağlanır. Kullanılabilir harf çevirisi grubu
Kimlikler, Android sürümleri ve cihazlar arasında kararsızdır. Cihaz üreticileri ekstra
harf çevirisi kimliğidir. Geliştiriciler,
Transliterator.getAvailableIDs()
,
okumanızı öneririz.
Lisanslama
ICU4J, ICU lisansı kapsamında yayınlanır. Ayrıntılı bilgi için ICU'ya bakın. kullanıcı rehberini inceleyin.