-
[ANDROID] Support Library, AndroidxANDROID/JETPACK 2022. 9. 23. 02:23
Support Library
서포트 라이브러리는 API의 하위 호환성 문제를 해결하기 위한 라이브러리이다.
예를들어 롤리팝(API 21)부터 도입된 리사이클러뷰, 스노우 콘(API31)부터 도입된 안드로이드 12 스플래시 라이브러리 등이 있다.
ex) RecyclerView - com.android.support.recyclerview-v7:28.0.0
여기서 v7은 API 7 이상의 기기부터 리사이클러뷰를 쓸 수 있음을 의미한다.
https://developer.android.com/topic/libraries/support-library/setup?hl=ko
지원 라이브러리 설정 | Android 개발자 | Android Developers
Android 지원 라이브러리를 사용하도록 앱을 설정하는 방법
developer.android.com
https://developer.android.com/reference/android/support/packages
Package Index | Android Developers
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2020-11-09 UTC. [{ "type": "thumb-down", "id": "missi
developer.android.com
서포트 라이브러리의 문제점
https://www.youtube.com/watch?v=V6-roIeNUY0
- 2017년 Google에서 너무 오래된 기기의 사용을 제한하기 위해 서포트 라이브러리 26버전 이상부터는 최소 지원 API 레벨을 API 14로 올리겠다는 발표를 하였다. 때문에 v7이 붙어 있어도 최소지원 기기는 API 14부터 사용이 가능하다.
- 서포트 라이브러리는 수 많은 API를 통합한 라이브러리이기 때문에 내가 필요로하지 않는 기능까지 추가되어 낭비가 발생한다.
- 서포트 라이브러리는 여러가지의 서포트라이브러리를 사용할 경우 버전을 통일시켜야 된다. 만약 카드뷰 버전 27.1.1에 문제가 있을 경우 다른 라이브러리들 까지 버전 다운을 해야한다.

Andoridx - Android Extension Libraries의 등장
2018년 구글은 위와 같은 문제들을 해결하고자 새로운 라이브러리 패키징 방식을 발표했다. 그리고 서포트 라이브러리는 Androidx(Android Extension Libraries)로 이름으로 바뀌게 되었다.
- 라이브러리의 기능별 분리 - support-core-ui가 -> drwaerlayout, cursoradapter, swiperefreshlayout, viewpager 등으로 분리되었다. 때문에 viewpager만 따로 임포트가 가능하다.
- 버저닝 방식 변경 - API 레벨과 동기화되어 올라가던 버저닝 방식은 28.0.0부터 1.0.0으로 리셋되었다 또한 Major.Monor.Patch Semantic Versioning을 준수하게 되었다. 패치는 버그 픽스, 마이너는 기능추가, 메이저는 바이너리 호환성이 없음을 의미
- 패키징 방식 변경 - android.support.v7.app과 같은 기능을 알 수 없었던 네이밍이 androidx.<feature>.ClassName 등과 같이 기능을 알 수 있는 네이밍으로 바뀌었다.
Semantic Versioning 2.0.0
Semantic Versioning spec and website
semver.org
https://www.youtube.com/watch?v=jdKUm8tGogw
'ANDROID > JETPACK' 카테고리의 다른 글
[Android] App Architecture (0) 2022.09.20 [ANDROID] Compose CompositionLocal (0) 2022.09.17