Wraz z każdą nową wersją niektóre interfejsy API Androida mogą stać się przestarzałe lub wymagać przebudowy, aby zapewnić lepsze wrażenia deweloperom lub obsługiwać nowe funkcje platformy. W takich przypadkach Android oficjalnie wycofa przestarzałe interfejsy API i przekieruje deweloperów na nowe interfejsy API.
Oznacza to, że zakończyliśmy oficjalne wsparcie interfejsów API, ale nadal będą one dostępne dla deweloperów. Na tej stronie znajdziesz informacje o niektórych wycofanych funkcjach w tej wersji Androida. Aby zobaczyć inne wycofane interfejsy API, zapoznaj się z raportami o różnicach interfejsów API.
RenderScript
W Androidzie 12 interfejsy RenderScript API są wycofywane. Będą one nadal działać, ale spodziewamy się, że producenci urządzeń i komponentów z czasem przestaną obsługiwać akcelerację sprzętową. Aby w pełni korzystać z przyspieszania przez GPU, zalecamy przejście z RenderScript.
Playlisty na Androidzie
Playlisty na Androida zostały wycofane. Interfejs API nie jest już obsługiwany, ale zachowuje zgodność z obecnymi funkcjami.
Zalecamy odczytywanie i zapisywanie playlist jako pliki m3u.
Wycofanie Display API
Urządzenia z Androidem są dostępne w różnych formatach, np. jako urządzenia z dużymi ekranami, tablety i urządzenia składane. Aby prawidłowo renderować treści na poszczególnych urządzeniach, aplikacja musi określić rozmiar ekranu lub wyświetlacza. Z czasem Android udostępniał różne interfejsy API do pobierania tych informacji. W Androidzie 11 wprowadziliśmy interfejs API WindowMetrics
i wycofaliśmy te metody:
W Androidzie 12 nadal zalecamy używanie WindowMetrics
, a te metody są wycofywane:
Aplikacje powinny używać interfejsów API WindowMetrics
, aby wysyłać zapytania dotyczące granic swojego okna, lub Configuration.densityDpi
, aby wysyłać zapytania o bieżącą gęstość.
Pamiętaj, że biblioteka Jetpack WindowManager
zawiera klasę WindowMetrics
, która obsługuje Androida 4.0.1 (poziom interfejsu API 14) i nowsze.
Przykłady
Oto kilka przykładów użycia WindowMetrics
.
Najpierw sprawdź, czy w Twojej aplikacji można w pełni zmieniać rozmiar aktywności.
Aktywność powinna korzystać z elementu WindowMetrics
z kontekstu aktywności do wykonywania wszelkich działań związanych z interfejsem użytkownika, w szczególności z elementu WindowManager.getCurrentWindowMetrics()
.
Jeśli aplikacja tworzy MediaProjection
, granice muszą być prawidłowo dopasowane, ponieważ rzutowanie przechwytuje zawartość ekranu. Jeśli aplikacja jest w pełni skalowalna, kontekst aktywności zwraca prawidłowe granice.
Kotlin
val projectionMetrics = activityContext .getSystemService(WindowManager::class.java).maximumWindowMetrics
Java
WindowMetrics projectionMetrics = activityContext .getSystemService(WindowManager.class).getMaximumWindowMetrics();
Jeśli aplikacja nie może być w pełni zmieniać rozmiaru, musi zapytać o granice instancji WindowContext
i pobrać dane WindowMetrics dotyczące maksymalnej dostępnej dla aplikacji powierzchni wyświetlania, używając do tego 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();