2016-10-29 1 views
3

SimpleDateFormat과 같은 다른 클래스에도 동일하게 적용됩니다. 자바는 java.text.SimpleDateFormat에 뒤에 안드로이드가 android.icu.text.SimpleDateFormatJava에 이미 Android가있는 경우 Android에 자체 DateFormat 클래스가있는 이유는 무엇입니까?

무엇을 할 수있는 이유가있다? Android가 자체 기능 집합을 추가합니까?

저는 최근에 많은 사람들이 DateFormat 클래스가 추상 클래스 인 경우 인스턴스화하는 방법에 대해 궁금해하니 걱정이됩니다. 이제는 android.text.format.DateFormat이 추상 클래스 인 java.text.DateFormat과 반대로 인스턴스화 될 수있는 구체적인 클래스라는 것을 알았습니다.

답변

1

CU4J는 소프트웨어 응용 프로그램에 유니 코드 및 세계화 지원을 제공하는 오픈 소스, 널리 사용되는 Java 라이브러리 집합입니다. Android 7.0 (API 레벨 24)부터 Android는 android.icu 패키지에서 사용할 앱 개발자를 위해 ICU4J API의 하위 집합을 노출합니다. 이러한 API는 장치에있는 현지화 데이터를 사용합니다. 결과적으로 APK 풋 프린트을 APK로 컴파일하지 않아도됩니다. 대신 프레임 워크에서 간단하게 호출 할 수 있습니다. (이 경우 여러 버전의 APK를 제공하여 안드로이드 버전 (API 레벨 24) 이하의 Android를 실행하는 사용자는 ICU4J 라이브러리가 포함 된 앱 버전을 다운로드 할 수 있습니다.)

Android com.ibm.icu보다는 android.icu 패키지를 통해 ICU4J API의 서브 세트를 노출합니다. 안드로이드 프레임 워크는 다양한 이유로 ICU4J API를 노출하지 않기로 선택할 수 있습니다. 예를 들어 Android는 일부 비추천 API 또는 ICU 팀이 아직 안정적이라고 선언하지 않은 API를 노출하지 않습니다. ICU 팀은 앞으로 API를 사용하지 않으므로 Android는 해당 API를 더 이상 사용되지 않는 것으로 표시하지만 계속해서 포함합니다.

(Source)

관련 문제