Что означает "ICU" в Android SDK?

Вы видели новые пакеты в документах Android SDK. Все они доступны на уровне API 24, который соответствует Android Nougat и, похоже, заменяет пакеты "java.xxx" на "android.icu.xxx". Например:

Пакет java.text.DateFormat дублируется в файле android.icu.text.DateFormat и т.д.

Кроме того, в некоторых классах icu появляется следующая аннотация:

[icu enhancement] Замена ICU для (имя класса). Методы, поля и другие функции, специфичные для ICU, обозначаются как "[icu]".

Итак, что такое ОИТ? И каковы различия между пакетами java и android.icu? Скоро будут устаревать пакеты java?

Ответ 1

В этом довольно хорошо объясняется понятие icu. Они в основном представили это для более позднего API, чтобы "уменьшить ваш APK-след". Я не думаю, что ICU заменяет библиотеки java.*.*, но это просто альтернатива использованию. На этой странице также есть одна интересная вещь:

Поскольку команда ICU отказывается от API-интерфейсов в будущем, Android также будет отмечать их как устаревшие, но будет продолжать их включать.

Здесь также представлен небольшой список возможностей ICU4J, который весьма полезен.