본문 바로가기

개발/Android

[Android] 지원 라이브러리란?

반응형

지원 라이브러리의 기본

 

지원 라이브러리는 라이브러리 형태로 제공되는 하위 호환성을 가진 안드로이드 프레임워크 API입니다. 안드로이드는 API 레벨(안드로이드 3.0이나 안드로이드 5.0) 별로 이용할 수 있는 클래스와 메서드가 다릅니다. 기본적으로 새로 추가된 클래스나 메서드는 낮은 API 레벨의 안드로이드 OS에서 이용할  수 없습니다. 하지만 지원 라이브러리를 이용하면 오래된 안드로이드 OS라도 일부에서 같은 메서드와 클래스를 이용할 수 있습니다.

 

예를 들어, Fragment 클래스는 API 레벨 11, 즉 안드로이드 3.0 이상에서만 이용할 수 있습니다. 또한 안드로이드 3.0이상만 지원하는 경우라도 Fragment 클래스의 requestPermissions 메서드 같은 안드로이드 6.0(API 레벨23)부터 추가된 메서드는 안드로이드 6.0 이상에서만 이용할 수 있습니다. 안드로이드 6.0 미만인 안드로이드 OS에서 이용하려고 하면 NoSuchMethodError 등이 발생해 충돌하고 맙니다.

이런 경우 v4 Support Library의 Fragment 클래스를 이용해 문제를 해결할 수 있습니다. 

 

 

v7이나, v4로 된 것은 라이브러리의 버전이 아니라 지원하는 최저 API 레벨이라는 뜻

implementation 'com.android.supprot:support-v4:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'

 

 

다음과 같이 기술하면 최신 버전 라이브러리가 들어오지만, 멋대로 버전이 올라가서 앱이 동작하지 않게 돼 버리는 문제가 일어날 수 있습니다. 

implementation 'com.android.support:appcompat-v7:+'

 

 

QuickFix([Alt] + [Enter])를 이용해 '+' 부분을 최신 버전으로 자동으로 수정할 수 있습니다. 

 

자주 사용되는 지원 라이브러리 종류와 특징

 

v4 지원 라이브러리

이 라이브러리는 안드로이드 1.6(API 레벨4) 이상에서 이용할 수 있습니다. 이 라이브러리에는 안드로이드 개발에서 없어서는 안 될 기능이 아주 많이 준비돼 있습니다. 예를 들어, fragment나, 새로운 os에 대응한 notification을 표시할 수 있는 notificationcompat등이 있습니다. 또한 뷰를 페이징하는 viewpater와 비동기 처리를 수행하는 loader 등의 기능을 제공합니다.

 

v7지원 라이브러리

이 라이브러리는 안드로이드 2.1(API 레벨 7)이상에서 이용할 수 있습니다. 이 라이브러리에는 몇 가지 종류가 있습니다. 가장 메인이 되는 것이 AppCompat 라이브러리로서 머티리얼 디자인을 구현하기 위한 Theme.AppCompat과 Toolbar 클래스 등이 들어 있습니다. 그 밖에도 CardView 라이브러리와 뒤에서 설명할 RecyclerView 라이브러리 등 안드로이드 개발에서 자주 사용하는 기능이 포함됩니다. 

 

Annotation 지원 라이브러리

이 라이브러리에서는 어노테이션으로 코드에 정보를 부가하고, 안드로이드 스튜디오에서 그 부가 정보를 소스코드가 틀렸을 때 경고를 내보내는 등의 기능을 제공합니다.

 

Design 지원 라이브러리

이 라이브러리는 머티리얼 디자인을 하위호환성 있는 형태로 구현하기 위한 라이브러리로서, 다양한 위젯이 있습니다. 내비게이션 드로워나 플로팅 액션 버튼, 스낵바 등이 있습니다.

 

 

 

반응형