지원 라이브러리

Android 지원 라이브러리는 프레임워크에 구현되지 않은 수많은 기능을 제공합니다. 이러한 라이브러리는 이전 버전과 호환되는 새 기능 버전을 제공하고 프레임워크에 포함되지 않은 유용한 UI 요소를 제공하고 앱이 사용할 수 있는 광범위한 유틸리티를 제공합니다.

개요

많은 경우에 특정 기능이 수많은 앱 개발자에게 소중할 수 있지만 Android 프레임워크에 포함하기에는 적절하지 않을 수 있습니다. 예를 들어, 앱에서 서로 다른 Android 시스템 버전 간 부드럽게 전환하는 등 특수 용도의 기능만을 필요로 할 수 있습니다.

이러한 상황을 처리하기 위해 Android SDK는 Android 지원 라이브러리라는 몇몇 라이브러리를 포함하고 있습니다. 앱 개발자는 라이브러리 기능을 앱에 통합하기 위해 이러한 라이브러리를 포함할 수 있습니다.

지원 라이브러리는 다음과 같은 혜택을 제공합니다.

이전 버전과의 호환성

그림 1. 이 앱은 지원 라이브러리 UI 요소를 사용하기 때문에 머티리얼 디자인에 대한 고유한 지원을 포함하지 않는 Android 4.4에서 실행 중인 경우에도 해당 인터페이스가 머티리얼 디자인 원칙을 통합합니다.

지원 라이브러리를 사용하면 이전 버전의 Android 플랫폼에서 실행 중인 앱이 새 버전의 플랫폼에서 사용 가능하게 된 기능을 지원할 수 있습니다. 예를 들어, 프레임워크 클래스에 의존하는 Android 5.0(API 레벨 21) 이전 버전에서 실행 중인 앱은 해당 버전의 Android 프레임워크가 머티리얼 디자인을 지원하지 않기 때문에 머티리얼 디자인 요소를 표시할 수 없습니다. 그러나 앱이 지원 라이브러리의 appcompat 라이브러리를 통합하면 해당 앱이 머티리얼 디자인 지원을 비롯한 API 레벨 21에서 사용 가능한 다양한 기능에 액세스할 수 있습니다. 따라서 앱이 다양한 플랫폼 버전에서 훨씬 일관적인 경험을 제공할 수 있습니다.

경우에 따라 클래스의 지원 라이브러리 버전은 가급적 프레임워크가 제공하는 기능에 의존할 수 있습니다. 그러한 경우에 앱이 지원 클래스의 메서드 중 하나를 호출하면, 지원 라이브러리의 동작은 앱이 실행 중인 Android 버전에 따라 다릅니다. 프레임워크가 필요한 기능을 제공하는 경우, 지원 라이브러리는 프레임워크에 해당 작업을 수행하라고 요청합니다. 앱이 이전 Android 버전에서 실행 중이고 프레임워크가 필요한 기능을 노출하지 않는 경우, 지원 라이브러리는 기능을 제공하려고 시도하거나 작동하지 않을 수 있습니다. 어느 경우이든 일반적으로 앱은 실행 중인 Android 버전을 확인할 필요가 없습니다. 그 대신에 앱은 지원 라이브러리에 의존하여 이러한 확인을 수행하고 적절한 동작을 선택할 수 있습니다. 일반적으로 이름이 …Compat으로 끝나는 클래스(예: ActivityCompat)가 이런 식으로 작동합니다.

다른 경우에 지원 라이브러리 클래스는 프레임워크 API의 가용성에 의존하지 않는 프레임워크 클래스의 완전한 독립 실행형 버전을 제공합니다. 이러한 메서드는 지원되는 모든 플랫폼에서 일관되게 작동합니다.

어느 경우이든 앱은 런타임에 시스템 버전을 확인할 필요가 없습니다. 앱은 지원 라이브러리 클래스에 의존하여 적절한 시스템 확인을 수행하고 필요에 따라 동작을 수정할 수 있습니다.

일반 레이아웃 패턴 지원

지원 라이브러리는 Android 프레임워크가 제공하지 않는 사용자 인터페이스 요소를 제공합니다. 예를 들어, Android 지원 라이브러리는 DrawerLayout과 같은 추가 레이아웃 클래스를 제공합니다. 이러한 클래스는 Android 디자인 모범 사례를 준수합니다. 예를 들어, Design 라이브러리는 다양한 Android 버전에서 작동하는 방식으로 머티리얼 디자인 원칙을 준수합니다.

이러한 지원 라이브러리 클래스를 사용하면 불필요한 작업을 피할 수 있습니다. 앱이 특별한 사용자 인터페이스 요구사항이 있는 경우 사용자에게 친숙한 사용자 인터페이스를 제공하는 기존 코드를 사용할 수 있습니다. 또한 이러한 요소는 Android 환경의 일부와 유사한 디자인의 앱을 빌드하는 데 도움이 됩니다. 예를 들어, 수많은 앱은 긴 요소 목록을 무작위로 표시해야 하며, 해당 목록이 변경될 때 해당 요소를 신속하고 효율적으로 재사용할 수 있어야 합니다. 이메일, 연락처, 음악 앨범 등의 목록이 그에 해당할 수 있습니다. 이러한 앱은 지원 라이브러리 RecyclerView 위젯을 사용하여 목록을 표시할 수 있습니다. 그러면 앱 개발자가 처음부터 목록을 개발하지 않아도 되며 사용자가 다른 앱의 목록과 모양과 동작이 유사한 목록을 보게 됩니다.

서로 다른 폼 팩터 지원

Android SDK는 TV와 웨어러블 기기와 같은 수많은 서로 다른 폼 팩터에 대한 라이브러리를 제공합니다. 앱은 적절한 지원 라이브러리에 의존하여 광범위한 플랫폼 버전에 기능을 제공할 수 있으며 외부 화면, 스피커 및 기타 대상 기기에 콘텐츠를 제공할 수 있습니다.

일반 유틸리티

Android 지원 라이브러리는 이전 버전과 호환되는 유틸리티 기능을 제공합니다. 앱은 해당 유틸리티 기능을 사용하여 광범위한 Android 시스템 버전에 적절한 사용자 경험을 제공할 수 있습니다. 예를 들어, 지원 라이브러리 권한 메서드는 앱이 실행 중인 플랫폼 버전에 따라 적절히 작동합니다. 플랫폼이 런타임 권한 모델을 지원하는 경우, 이러한 메서드는 적절한 사용자 권한을 요청합니다. 런타임 권한 모델을 지원하지 않는 플랫폼 버전에서 해당 메서드는 설치 중에 적절한 권한이 부여되었는지 확인합니다.