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 wycofa przestarzałe interfejsy API i skieruje 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ą wycofywane. Nadal będą działać, ale spodziewamy się, że producenci urządzeń i komponentów z czasem przestaną zapewniać obsługę akceleracji sprzętowej. Aby w pełni wykorzystać akcelerację GPU, zalecamy przejście z RenderScript.
Playlisty Androida
Playlisty Androida są wycofywane. Interfejs API nie jest już utrzymywany, ale obecna funkcjonalność pozostaje zachowana ze względu na zgodność.
Zalecamy odczytywanie i zapisywanie playlist jako plików m3u.
Wycofanie interfejsu Display 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 biegiem czasu Android udostępniał różne interfejsy API do pobierania tych informacji. W
Androidzie 11 wprowadziliśmy interfejs
WindowMetrics API i wycofaliśmy
te metody:
W Androidzie 12 nadal zalecamy używanie interfejsu WindowMetrics API i wycofujemy te metody:
Aplikacje powinny używać interfejsów WindowMetrics API do wysyłania zapytań o granice okna lub
Configuration.densityDpi
do wysyłania zapytań o bieżącą gęstość.
Pamiętaj, że biblioteka Jetpack WindowManager
zawiera klasę WindowMetrics
, która obsługuje Androida 4.0.1 (poziom API 14) i nowsze wersje.
Przykłady
Oto kilka przykładów użycia interfejsu WindowMetrics API.
Najpierw upewnij się, że rozmiar aktywności w aplikacji można w pełni zmieniać.
W przypadku wszystkich zadań związanych z interfejsem użytkownika, a w szczególności
WindowManager.getCurrentWindowMetrics(), aktywność powinna korzystać z interfejsu WindowMetrics API z kontekstu aktywności.
Jeśli aplikacja tworzy MediaProjection, granice muszą mieć prawidłowy rozmiar, ponieważ projekcja przechwytuje wyświetlacz. Jeśli rozmiar aplikacji można w pełni zmieniać, 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 rozmiar aplikacji nie może być w pełni zmieniany, musi ona wysyłać zapytania o granice z instancji
WindowContext i pobierać interfejs WindowMetrics API 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();