깨알 개념/Android

AndroidX (구 Support Library)

interfacer_han 2023. 12. 13. 11:33

#1 알고리즘

안드로이드 API 레벨이 오를 때마다, 당연하게도 사용할 수 있는 안드로이드 프레임워크의 라이브러리가 달라진다. 예를 들어, android.widget.Toolbar 클래스는 안드로이드 API 레벨 21에 추가되었기에, 하위 버전의 API에서는 오류가 발생한다. Support Library가 나오기 전 안드로이드 개발자들은 앱이 설치된 휴대폰의 API 레벨을 읽고, 각 API 별로 분기 코드를 작성해야 했다.

 

이후, Support Library 출범 후 예전 안드로이드 API에도 최신 기능을 사용할 수 있게 되었다. 예를 들어, android.support.v7.widget.Toolbar 클래스는 안드로이드 API 레벨이 7 이상이기만 하면 사용할 수 있다 (패키지 명(네임스페이스)에 있는 v7은 가용한 최소 API 레벨을 표시한 것이다). 하지만 Support Library는 네임스페이스가 너무 복잡해서 가독성이 떨어졌고, 이로 인해 패키지를 import할 때 비슷한 이름으로 인한 충돌도 일어나곤 했다. 또, android.support 하위 라이브러리들을 따로따로 업데이트하는 방식이었기 때문에 유지 보수가 복잡했다.

 

이후 Jetpack이 출시되었는데, 그 일부인 AndroidX는 Support Library의 문제점을 개선한 완전 상위호환의 모습을 보여준다. 그 덕에 현재 Support Library는 Deprecated된 상태다.

 

#2 요약

시스템의 API가 서로 달라도 AndroidX는 일관된 동작을 보장한다.