С каждым релизом некоторые API Android могут устаревать или нуждаться в рефакторинге для улучшения удобства разработки или поддержки новых возможностей платформы. В таких случаях Android официально прекращает поддержку устаревших API и предлагает разработчикам использовать новые API.
Устаревание означает, что мы прекратили официальную поддержку этих API, но они по-прежнему будут доступны разработчикам. На этой странице описаны некоторые устаревшие функции в этой версии Android. Чтобы узнать о других устаревших функциях, обратитесь к отчёту о различиях API .
RenderScript
Начиная с Android 12, API RenderScript устарели. Они продолжат работать, но мы ожидаем, что производители устройств и компонентов со временем прекратят поддержку аппаратного ускорения. Чтобы в полной мере воспользоваться возможностями ускорения на GPU, мы рекомендуем отказаться от 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();