page.title=ICU4J Android Framework APIs page.image=images/cards/card-nyc_2x.jpg @jd:body
O ICU4J é um conjunto de bibliotecas Java de código aberto e amplamente usadas que fornecem suporte para Unicode e globalização para aplicativos de software. O Android N expõe um subconjunto de APIs do ICU4J na estrutura do Android para uso dos desenvolvedores de aplicativos no pacote {@code android.icu}. Essas APIs usam dados de localização presentes no dispositivo. Consequentemente, você pode reduzir o uso de APK ao não compilar as bibliotecas do ICU4J no seu APK. Em vez disso, pode simplesmente chamá-las na estrutura. (Neste caso, pode ser conveniente fornecer várias versões do seu APK para que os usuários que tenham versões inferiores ao Android N possam fazer o download de uma versão do aplicativo que contenha as bibliotecas do ICU4J.)
Este documento começa fornecendo informações básicas sobre os níveis mínimos da Android API necessários para oferecer suporte a essas bibliotecas. Em seguida, ele explica o que você deve saber sobre a implementação do ICU4J específica do Android. Por fim, ele informa como usar as APIs do ICU4J na estrutura do Android.
O Android N expõe um subconjunto de APIs do ICU4J por meio do pacote
android.icu
, não do com.ibm.icu
. A
estrutura do Android pode optar por não
expor as APIs do ICU4J por diversos motivos. Por exemplo, o Android N não expõe
algumas APIs obsoletas ou que a equipe do ICU ainda não declarou como
estáveis. Conforme a equipe do ICU torna APIs obsoletas, o Android também as marcará
como obsoletas, mas continuará incluindo-as.
Tabela 1. Versões ICU e CLDR usadas no Android N.
Nível da Android API | Versão ICU | Versão CLDR |
---|---|---|
Android N | 56 | 28 |
Algumas observações importantes:
Se você já estiver usando as APIs do ICU4J no seu aplicativo e as APIs
android.icu
atenderem aos seus requisitos, a migração para
as APIs de estrutura exigirão que você altere as importações Java
de com.ibm.icu
para android.icu
. Você, então, poderá
remover sua própria cópia dos arquivos do ICU4J do APK.
Observação: As APIs de estrutura do ICU4J usam o namespace {@code android.icu} em vez de {@code com.ibm.icu}. Isso ocorre para evitar conflitos de namespace em APKs que contêm as próprias bibliotecas {@code com.ibm.icu}.
Algumas classes dos pacotes java
e android
têm
equivalentes para as encontradas no ICU4J. No entanto, o ICU4J frequentemente fornece um suporte
mais amplo para padrões e linguagens.
Alguns exemplos para você começar:
Classe | Alternativas |
---|---|
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
|
O ICU4J é liberado sob a licença do ICU. Para saber mais, consulte o Guia do usuário do ICU.