Прекращение поддержки

С каждым выпуском определенные API-интерфейсы Android могут устаревать или нуждаться в рефакторинге, чтобы обеспечить лучший опыт разработки или поддержку новых возможностей платформы. В этих случаях Android официально объявит устаревшие API и направит разработчиков к использованию новых API.

Устаревание означает, что мы прекратили официальную поддержку API, но они по-прежнему останутся доступными для разработчиков. На этой странице описаны некоторые устаревшие функции этой версии Android. Чтобы увидеть другие устаревшие версии, обратитесь к отчету о различиях API .

Рендерскрипт

Начиная с Android 12, API RenderScript устарели. Они продолжат работать, но мы ожидаем, что производители устройств и компонентов со временем перестанут предоставлять поддержку аппаратного ускорения. Чтобы в полной мере воспользоваться преимуществами ускорения графического процессора, мы рекомендуем перейти с RenderScript .

Плейлисты для Android

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

Мы рекомендуем читать и сохранять плейлисты в виде файлов m3u .

Устаревшие API дисплея

Устройства Android становятся доступными во многих различных форм-факторах, таких как большие экраны, планшеты и складные устройства. Чтобы правильно отображать контент для каждого устройства, вашему приложению необходимо определить размер экрана или дисплея. Со временем Android предоставил различные API для получения этой информации. В Android 11 мы представили API WindowMetrics и объявили устаревшими эти методы:

В Android 12 мы по-прежнему рекомендуем использовать WindowMetrics и объявляем устаревшими следующие методы:

Приложения должны использовать API-интерфейсы WindowMetrics для запроса границ своего окна или Configuration.densityDpi для запроса текущей плотности.

Обратите внимание, что библиотека Jetpack WindowManager включает класс WindowMetrics , поддерживающий Android 4.0.1 (уровень API 14) и выше.

Примеры

Вот несколько примеров использования WindowMetrics .

Во-первых, убедитесь, что ваше приложение может полностью изменять размер своих действий.

Действие должно полагаться на WindowMetrics из контекста действия для любой работы, связанной с пользовательским интерфейсом, особенно WindowManager.getCurrentWindowMetrics() .

Если ваше приложение создает MediaProjection , границы должны иметь правильный размер, поскольку проекция захватывает изображение. Если размер приложения можно полностью изменить, контекст активности возвращает правильные границы.

Котлин

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

Ява

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

Если размер приложения не может быть полностью изменен, оно должно запросить границы из экземпляра WindowContext и получить WindowMetrics максимальной области отображения, доступной приложению, с помощью WindowManager.getMaximumWindowMetrics()

Котлин

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

Ява

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();