지원 라이브러리의 기본
지원 라이브러리는 라이브러리 형태로 제공되는 하위 호환성을 가진 안드로이드 프레임워크 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 지원 라이브러리
이 라이브러리는 머티리얼 디자인을 하위호환성 있는 형태로 구현하기 위한 라이브러리로서, 다양한 위젯이 있습니다. 내비게이션 드로워나 플로팅 액션 버튼, 스낵바 등이 있습니다.
'개발 > Android' 카테고리의 다른 글
[Android] 단위 테스트 (0) | 2019.02.09 |
---|---|
[Android] MVP와 MVVM 설계 기법 (0) | 2019.01.30 |
[Android] 컴포넌트(component) - ContentProvider, Service, BroadcastReciver (0) | 2019.01.27 |
[Android] 프래그먼트(Fragment)와 생명주기(Life Cycle) (0) | 2019.01.26 |
[Android] 액티비티(Activity)와 생명주기(Life Cycle) (0) | 2019.01.26 |