Z każdą 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 powinni używać.
Wycofanie oznacza, że zakończyliśmy oficjalne wsparcie dla 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. Inne wycofania znajdziesz w raporcie różnic w interfejsie API.
RenderScript
Od Androida 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ą zapewniać obsługę akceleracji sprzętowej. Aby w pełni wykorzystać akcelerację GPU, zalecamy zaprzestanie korzystania z RenderScriptu.
Playlisty na Androida
Playlisty na Androida są wycofywane. Ten interfejs API nie jest już utrzymywany, ale jego obecna funkcjonalność pozostaje zachowana ze względu na zgodność.
Zalecamy odczytywanie i zapisywanie list odtwarzania jako plików m3u.
Wycofanie interfejsów Display API
Urządzenia z Androidem są dostępne w wielu różnych formatach, np. z dużymi ekranami, jako 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 WindowMetrics
API i wycofaliśmy te metody:
W Androidzie 12 nadal zalecamy używanie metody WindowMetrics
. Wycofujemy te metody:
Aplikacje powinny używać interfejsów API WindowMetrics
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 interfejsu API 14) i nowsze wersje.
Przykłady
Oto kilka przykładów użycia symbolu WindowMetrics
.
Najpierw upewnij się, że aktywności aplikacji można w pełni zmieniać.
W przypadku wszelkich działań związanych z interfejsem, a w szczególności WindowManager.getCurrentWindowMetrics()
, aktywność powinna korzystać z WindowMetrics
z kontekstu aktywności.
Jeśli aplikacja tworzy MediaProjection
, granice muszą mieć odpowiedni rozmiar, ponieważ projekcja obejmuje wyświetlacz. Jeśli aplikacja ma w pełni zmieniany rozmiar, 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 jest w pełni zmienna, musi wysyłać zapytania o granice z instancji WindowContext
i pobierać 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();