지원 중단

각 출시에서 특정 Android API는 더 이상 사용되지 않거나 더 나은 개발자 환경 제공이나 새 플랫폼 기능 지원을 위해 리팩터링해야 할 수 있습니다. 이 경우 Android는 더 이상 사용되지 않는 API를 공식적으로 지원 중단하고 개발자에게 대신 사용할 새 API를 안내합니다.

지원 중단이란 API에 관한 공식 지원은 종료되나 개발자는 계속 사용할 수 있다는 의미입니다. 이 페이지에서는 이번 Android 출시에서 지원 중단된 사항을 중점적으로 다룹니다. 다른 지원 중단을 확인하려면 API 차이점 보고서를 참고하세요.

RenderScript

Android 12부터 RenderScript API는 지원 중단됩니다. 계속 작동하지만 기기 및 구성요소 제조업체는 시간이 지남에 따라 하드웨어 가속 지원을 더 이상 제공하지 않을 것으로 예상됩니다. GPU 가속을 최대한 활용하려면 RenderScript에서 이전하는 것이 좋습니다.

Android 재생목록

Android 재생목록이 지원 중단됩니다. 이 API는 더 이상 유지되지 않지만 현재 기능은 호환성을 위해 유지됩니다.

재생목록을 m3u 파일로 읽고 저장하는 것이 좋습니다.

Display API 지원 중단

Android 기기는 큰 화면, 태블릿, 폴더블과 같은 매우 다양한 폼 팩터로 제공됩니다. 콘텐츠를 각 기기에 맞게 렌더링하려면 앱은 화면이나 디스플레이 크기를 결정해야 합니다. 오랜 시간 동안 Android는 이 정보를 검색하는 다양한 API를 제공했습니다. Android 11에서는 WindowMetrics API를 도입하고 다음 메서드를 지원 중단했습니다.

Android 12에서는 WindowMetrics 사용을 계속 권장하면서 다음 메서드를 지원 중단합니다.

앱은 WindowMetrics API를 사용하여 창 경계를 쿼리하거나 Configuration.densityDpi를 사용하여 현재 밀도를 쿼리해야 합니다.

Jetpack WindowManager 라이브러리에는 Android 4.0.1(API 수준 14) 이상을 지원하는 WindowMetrics 클래스가 포함되어 있습니다.

다음은 WindowMetrics 사용 방법을 보여주는 예입니다.

먼저 앱이 앱 활동을 완전히 크기 조절이 가능하도록 할 수 있는지 확인합니다.

활동은 모든 UI 관련 작업, 특히 WindowManager.getCurrentWindowMetrics()의 경우 활동 컨텍스트의 WindowMetrics를 사용해야 합니다.

앱에서 MediaProjection을 만든다면 프로젝션이 디스플레이를 캡처하므로 경계의 크기가 올바르게 지정되어야 합니다. 앱의 크기를 완전히 조절할 수 있으면 활동 컨텍스트는 올바른 경계를 반환합니다.

Kotlin

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

자바

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

앱의 크기를 완전히 조절할 수 없으면 앱은 WindowContext 인스턴스에서 경계를 쿼리하고 WindowManager.getMaximumWindowMetrics()를 사용하여 애플리케이션에서 사용할 수 있는 최대 디스플레이 영역의 WindowMetrics를 검색해야 합니다.

Kotlin

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

자바

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();