ICU4J Android 프레임워크 API

ICU4J는 오픈 소스이며 널리 사용되는 Java 라이브러리 세트로, 소프트웨어 애플리케이션에 유니코드와 세계화 지원을 제공합니다. Android 7.0(API 레벨 24)부터는 Android에서 앱 개발자가 android.icu 패키지에서 사용할 수 있도록 ICU4J API의 하위 세트를 노출합니다. 이러한 API는 기기에 있는 현지화 데이터를 사용합니다. 따라서 ICU4J 라이브러리를 APK로 컴파일하지 않고 프레임워크에서 호출하여 APK 사용 공간을 줄일 수 있습니다. (이 경우, Android 7.0(API 레벨 24) 이하 버전의 Android를 실행하는 사용자가 ICU4J 라이브러리를 포함한 앱 버전을 다운로드할 수 있도록 여러 버전의 APK를 제공해야 할 수도 있습니다.)

이 문서에서는 먼저 이 라이브러리 지원에 필요한 최소 Android API 레벨과 관련된 몇 가지 기본 정보를 제공합니다. 그런 다음, 각 Android에서 ICU4J를 구현할 때 알아야 할 사항에 대해 설명합니다. 마지막으로, Android 프레임워크에서 ICU4J API를 사용하는 방법에 대해 설명합니다.

ICU4J와의 관계

Android는 com.ibm.icu가 아니라 android.icu 패키지를 통해 ICU4J API의 하위 세트를 노출합니다. Android 프레임워크는 여러 가지 이유로 ICU4J API를 노출하지 않을 수 있습니다. 예컨대, Android는 일부 지원 중단된 API나 ICU 팀에서 아직 안정적이라고 선언하지 않은 API를 노출하지 않습니다. ICU 팀이 이후에 API의 지원을 중단하면, Android도 이를 지원 중단됨으로 표시하지만 계속 포함시킵니다.

표 1. Android에서 사용된 ICU 및 CLDR 버전.

Android API 레벨 ICU 버전 CLDR 버전
Android 7.0(API 레벨 24) 56 28

중요한 참고 사항:

  • ICU4J Android 프레임워크 API에 모든 ICU4J API가 포함되어 있지는 않습니다.
  • NDK 개발자는 Android ICU4C가 지원되지 않는다는 것을 숙지해야 합니다.
  • Android 프레임워크의 API는 Android의 리소스를 사용한 현지화 지원 기능을 대체하지 않습니다.

com.ibm.icu에서 android.icu 패키지로 마이그레이션

앱에서 이미 ICU4J API를 사용하고 있고 android.icu API가 요구 사항을 충족한다면 프레임워크 API로 마이그레이션할 때 Java 가져오기를 com.ibm.icu에서 android.icu로 변경해야 합니다. 그러면 APK에서 ICU4J 파일 사본을 삭제할 수 있습니다.

참고: ICU4J 프레임워크 API는 com.ibm.icu 대신 android.icu 네임스페이스를 사용합니다. 이는 자체 com.ibm.icu 라이브러리가 포함된 APK에서 네임스페이스 충돌을 피하기 위한 것입니다.

다른 Android SDK API에서 android.icu API로 마이그레이션

javaandroid 패키지의 일부 클래스는 ICU4J의 클래스와 같습니다. 그러나 ICU4J는 종종 더욱 폭넓은 표준과 언어를 지원합니다.

다음은 시작하기 위한 몇 가지 예시입니다.

클래스 대체 클래스
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

라이선스

ICU4J는 ICU 라이선스 하에서 출시됩니다. 자세한 내용은 ICU 사용자 가이드를 참조하세요.