Elementy wycofane

W każdej wersji określone interfejsy API Androida mogą stać się przestarzałe lub wymagać refaktoryzacji, aby zapewnić lepsze środowisko programistyczne lub obsługiwać nowe funkcje platformy. W takich przypadkach Android oficjalnie wycofa przestarzałe interfejsy API i skieruje deweloperów do nowych, z których mogą korzystać.

Oznacza to, że zakończyliśmy oficjalną obsługę interfejsów API, ale nadal będą one dostępne dla deweloperów. Na tej stronie opisujemy niektóre wycofania w tej wersji Androida. Informacje o innych wycofanych funkcjach znajdziesz w raporcie Różnice między interfejsami API.

Skrypt renderowania

W Androidzie 12 interfejsy API RenderScript zostały wycofane. Nadal będą one działać, ale spodziewamy się, że producenci urządzeń i komponentów przestaną z czasem obsługiwać akcelerację sprzętową. Jeśli chcesz w pełni korzystać z akceleracji GPU, zalecamy migrację z renderScriptu.

Playlisty na Androida

Playlisty na Androidzie zostały wycofane. Interfejs API nie jest już utrzymywany, ale jego obecne funkcje pozwalają zachować zgodność.

Zalecamy odczytywanie i zapisywanie playlist w formacie plików m3u.

Wycofanie interfejsu Display API

Urządzenia z Androidem są dostępne w wielu różnych formatach, np. dużych ekranach, tabletach czy urządzeniach składanych. 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 WindowMetrics i wycofujemy te metody:

Aplikacje powinny używać interfejsów API WindowMetrics do odpytywania granic okna lub Configuration.densityDpi, aby wysyłać zapytania dotyczące bieżącej gęstości.

Biblioteka WindowManager Jetpack 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 właściwości WindowMetrics.

Po pierwsze upewnij się, że działania w aplikacji można w pełni zmieniać.

W przypadku wszystkich zadań związanych z interfejsem, w szczególności WindowManager.getCurrentWindowMetrics(), aktywność powinna polegać na obiekcie WindowMetrics w kontekście działania.

Jeśli aplikacja tworzy MediaProjection, progi muszą mieć odpowiedni rozmiar, ponieważ projekcja obejmuje obraz. Jeśli można w pełni zmienić rozmiar aplikacji, kontekst aktywności zwraca prawidłowe wartości graniczne.

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ć rozmiaru, musi ona wysyłać zapytania dotyczące granic z instancji WindowContext oraz pobierać WindowMetrics o maksymalnym obszarze wyświetlania dostępnym 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();