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.
Wycofanie oznacza, że zakończyliśmy oficjalną obsługę tych interfejsów API, ale nadal będą one dostępne dla deweloperów. Na tej stronie przedstawiamy niektóre wycofania tej wersji Androida. Aby zobaczyć inne wycofane interfejsy API, zapoznaj się z raportami o różnicach interfejsów API.
RenderScript
Począwszy od Androida 12 interfejsy RenderScript API są wycofane. Będą one nadal działać, ale planujemy, że z czasem producenci urządzeń i komponentów przestaną obsługiwać akcelerację sprzętową. Aby w pełni korzystać z akceleracji GPU, zalecamy przejście na rezygnację z RenderScriptu.
Playlisty na Androidzie
Playlisty na Androida zostały wycofane. Interfejs API nie jest już aktualizowany, ale jego obecna funkcjonalność jest nadal dostępna ze względu na zgodność wsteczną.
Zalecamy odczytywanie i zapisywanie playlist jako plików m3u.
Wycofanie interfejsu 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 zapytać o granice okna, lub Configuration.densityDpi
, aby zapytać o bieżącą gęstość.
Pamiętaj, że biblioteka Jetpack WindowManager
zawiera klasę WindowMetrics
obsługującą Androida 4.0.1 (poziom interfejsu API 14) i nowsze.
Przykłady
Oto kilka przykładów użycia atrybutu WindowMetrics
.
Przede wszystkim upewnij się, że w 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 można w pełni zmienić rozmiar aplikacji, 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 aplikacji nie można w pełni zmienić, musi ona wykonać zapytanie o granice z instancji WindowContext
i pobrać WindowMetrics dotyczące maksymalnego obszaru wyświetlania dostępnego dla aplikacji za pomocą funkcji 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();