Z każdą kolejną wersją niektóre interfejsy API Androida mogą stać się przestarzałe lub wymagać refaktoryzacji, aby zapewnić deweloperom większy komfort pracy lub obsługiwać nowe funkcje platformy. W takich przypadkach Android oficjalnie wycofuje przestarzałe interfejsy API i kieruje deweloperów do nowych interfejsów API, których mogą używać w zamian.
Wycofanie oznacza, że zakończyliśmy oficjalne wsparcie dla danych interfejsów API, ale nadal będą one dostępne dla deweloperów. Na tej stronie znajdziesz informacje o niektórych funkcjach, które zostały wycofane w tej wersji Androida. Aby zobaczyć inne wycofania, zapoznaj się z raportem różnic w interfejsie API.
RenderScript
Od Androida 12 interfejsy RenderScript API są wycofane. Będą one nadal działać, ale spodziewamy się, że z czasem producenci urządzeń i komponentów przestaną zapewniać obsługę akceleracji sprzętowej. Aby w pełni wykorzystać możliwości akceleracji GPU, zalecamy migrację z RenderScript.
Playlisty na Androidzie
Playlisty na Androidzie zostały wycofane. Interfejs API nie jest już obsługiwany, ale obecne funkcje pozostają dostępne ze względu na zgodność.
Zalecamy odczytywanie i zapisywanie playlist jako plików m3u.
Wyświetlanie wycofanych interfejsów API
Urządzenia z Androidem są dostępne w wielu różnych formatach, takich jak duże ekrany, tablety i urządzenia składane. Aby prawidłowo renderować treści na każdym urządzeniu, aplikacja musi określić rozmiar ekranu lub wyświetlacza. Z czasem Android udostępnił 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 wycofujemy:
Aplikacje powinny używać interfejsów API WindowMetrics do sprawdzania granic okna lub Configuration.densityDpi do sprawdzania bieżącej gęstości.
Pamiętaj, że biblioteka Jetpack WindowManager zawiera klasę WindowMetrics, która obsługuje Androida 4.0.1 (poziom interfejsu API 14) i nowsze wersje.
Przykłady
Oto kilka przykładów użycia WindowMetrics.
Najpierw upewnij się, że aktywności w aplikacji mogą mieć w pełni zmieniany rozmiar.
Aktywność powinna opierać się na WindowMetrics z kontekstu aktywności w przypadku wszystkich zadań związanych z interfejsem, zwłaszcza WindowManager.getCurrentWindowMetrics().
Jeśli aplikacja tworzy obiekt MediaProjection, granice muszą mieć prawidłowy rozmiar, ponieważ projekcja przechwytuje wyświetlacz. Jeśli rozmiar aplikacji można w pełni zmienić, 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 rozmiaru aplikacji nie można w pełni zmienić, musi ona wysłać zapytanie o granice z instancji WindowContext i pobrać dane WindowMetrics maksymalnego obszaru wyświetlania dostępnego dla aplikacji za pomocą 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();