Elementy wycofane

W każdej wersji określone interfejsy API Androida mogą stać się przestarzałe lub wymagać refaktoryzacji, aby zapewnić lepsze wrażenia programistów lub obsługiwać nowe funkcje platform. W takich przypadkach Android oficjalnie wycofuje przestarzałe interfejsy API i kieruje programistów do używania nowych interfejsów 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. Informacje o innych wycofanych funkcjach znajdziesz w raporcie o różnicach między interfejsami API.

RenderScript

W Androidzie 12 interfejsy RenderScript API są wycofywane. 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ż obsługiwany, ale zachowuje zgodność z obecnymi funkcjami.

Zalecamy odczytywanie i zapisywanie playlist jako pliki m3u.

Wycofanie interfejsu Display API

Urządzenia z Androidem są coraz bardziej dostępne w wielu różnych formatach, takich jak duże ekrany, tablety i urządzenia składane. Aby odpowiednio 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 korzystanie z metody WindowMetrics i wycofujemy te metody:

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 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 wykorzystywać atrybut WindowMetrics z kontekstu działania do wszelkich prac związanych z interfejsem, a zwłaszcza 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();