С каждым выпуском некоторые API Android могут устаревать или требовать рефакторинга, чтобы разработчикам было удобнее работать с ними или чтобы поддерживать новые возможности платформы. В таких случаях Android официально прекращает поддержку устаревших API и рекомендует разработчикам использовать новые.
Это означает, что мы прекратили официальную поддержку API, но они по-прежнему доступны разработчикам. На этой странице перечислены некоторые функции, поддержка которых прекращена в этой версии Android. Чтобы узнать, поддержка каких ещё функций прекращена, ознакомьтесь с отчетом о различиях в API.
RenderScript
Начиная с 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.
Прежде всего убедитесь, что в вашем приложении можно полностью изменять размер действий.
Для работы с интерфейсом, в частности для WindowManager.getCurrentWindowMetrics(), в действии должен использоваться WindowMetrics из контекста действия.
Если ваше приложение создает объект MediaProjection, границы должны быть правильно заданы, поскольку проекция захватывает экран. Если размер приложения можно полностью изменить, контекст действия возвращает правильные границы.
Kotlin
val projectionMetrics = activityContext .getSystemService(WindowManager::class.java).maximumWindowMetrics
Java
WindowMetrics projectionMetrics = activityContext .getSystemService(WindowManager.class).getMaximumWindowMetrics();
Если размер приложения нельзя изменить полностью, оно должно запросить границы у экземпляра WindowContext и получить WindowMetrics максимальной области экрана, доступной приложению, с помощью WindowManager.getMaximumWindowMetrics().
Kotlin
val windowContext = context.createWindowContext(mContext.display!!, WindowManager.LayoutParams.TYPE_APPLICATION, null) val projectionMetrics = windowContext.getSystemService(WindowManager::class.java) .maximumWindowMetrics
Java
Context windowContext = mContext.createWindowContext(mContext.getDisplay(), WindowManager.LayoutParams.TYPE_APPLICATION, null; WindowMetrics projectionMetrics = windowContext.getWindowManager() .getMaximumWindowMetrics();