С каждым релизом некоторые 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
Java
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
Java
Context windowContext = mContext.createWindowContext(mContext.getDisplay(), WindowManager.LayoutParams.TYPE_APPLICATION, null; WindowMetrics projectionMetrics = windowContext.getWindowManager() .getMaximumWindowMetrics();