일모도원(日暮途遠) 개발자

[Android아키텍처] 지원 라이브러리 support library 본문

안드로이드 개발/아키텍처

[Android아키텍처] 지원 라이브러리 support library

달님개발자 2022. 9. 16. 11:32

새로운 형태의 지원 라이브러리인 AndroidX가 Android 9.0(API 수준 28)에 나오면서 기존 지원 라이브러리(support library)는 쓸수는 있지만, 더이상 업데이트 되지 않는다. 즉 이제는 AndroidX를 쓰자.

 

지원(支援) 라이브러리의 용도

새로운 API에 대한 하위 호환성(下位互換性, Backward Compatibility)

새로운 안드로이드 OS가 나오거나 기존 버전의 OS에서도 API버전을 올라갈수 있다. 새로운 API가 구 버전에서는 동작을 안할때 지원 라이브러리를 쓰면 이전 버전에서도 새로운 API를 쓸수 있다. 예를 들면 Fragment는 Android 3.0(API 수준 11)에 새로 추가되었지만, 지원 라이브러리를 이용하여 이전 버전에서도 Fragment를 쓸 수 있다. 지원 라이브러리가 없다면, 일일히 버전별로 나눠서 코드를 작성해야 한다.

 

도우미 클래스 및 다양한 유틸리티 제공

RecyclerView등 다양한 도우미 클래스들을 제공한다. (RecyclerView가 지원 라이브러리였어?) 코드 린트 검사 및 멀티덱스등도 지원한다.

 

지원(支援) 라이브러리의 문제점

implement 'com.android.support:support-v4:28.0.0'

implement 'com.android.support:appcompat-v7:26.1.0'

이런씩의 표기법을 가지는데 v4, v7, v13등의 숫자는 최소 지원 API레벨이고 각각 api 4 이상, api 7 이상, api 13 이상을 의미한다.

그리고 "28.0.0", "26.1.0"은 지원 라이브러리의 버전이다.

 

그런데 지원 라이브러리 버전 26.0.0(2017년 7월)부터 최소 API 레벨이 Android 4.0(API 수준 14)으로 변경 되었다. 즉 v4라도 더이상 api 4이상이 아니다. (버전을 잘 안맞추면 크래쉬 날수도 있음.)

 

그리고 지원 라이브러리 용량이 불필요할정도로 계속 커짐.

 

 

지원 라이브러리는 더이상 공부하지 말고

새로운 프로젝트라면 androidx를 사용하고, 기존 프로젝트도 androidx로 migration하자.