티스토리 뷰

Android

AndroidX

parkho79 2020. 2. 12. 17:59
300x250
300x250



Android 개발을 하다 보면 하위 버전 호환을 위해 Android OS 에 포함된 API 외 하단과 같은 구글이 별도로 제공하는 Support Library 를 필수로 사용하게 된다.

 

 

이렇게 써오던 Support Library 는 v4, v7, v13 등과 같이 아주 모호한 버전명을 사용해 왔다.

각 버전의 의미는 api-4, 7, 13 을 뜻하지만 v13 이 v4 를 포함한 더 최신버전이라고 오해할 수 있으니 말이다.

더욱이, support v4 의 경우 24.2.0 에서 api 8 이하 지원을 중단하면서 더이상 api-4 가 아니게 된다.

 

이번 포스팅에서는 이런 복잡하고 모호한 버전 규칙의 해결책으로 나온 AndroidX 에 대해 알아보자.

 

 

Android Jetpack

AndroidX 를 알아보기 전에 AndroidX 를 발표한 Jetpack 부터 간단히 알아보자.

Jetpack 은 개발자가 고품질 앱을 손쉽게 개발할 수 있게 돕는 라이브러리, 도구, 가이드 모음이다.

Jetpack 은 기능에 따라 하단과 같이 네가지 컴포넌트로 구분하며, 각 컴포넌트는 독립적인 활용이 가능한다.

 



AndroidX

AndroidX 는 Android 팀이 Jetpack 내에서 라이브러리를 개발, 테스트, 패키지화, 버전 및 릴리스하기 위해 사용하는 오픈 소스 프로젝트로 기존에 사용중인 Android Support Library (com.android.support.*) 를 크게 개선하여 하나로 통합한 것이다.

 

◼ AndroidX 의 모든 패키지는 androidx 라는 문자열로 시작하는 일관된 네임 스페이스에 있다.

지원 라이브러리 패키지는 상응하는 androidx.* 패키지에 매핑되어있다.

모든 이전 클래스와 빌드 아티팩트를 새 클래스와 빌드 아티팩트에 완전히 매핑하려면 Package Refactoring 페이지를 참조하자.

 

◼ Android Support Library 와 달리 androidX 패키지는 별도로 유지보수 및 업데이트된다.

androidx 패키지는 version 1.0.0 부터 시작하는 엄격한 Semantic versioning 을 사용한다.

AndroidX 라이브러리를 프로젝트에서 독립적으로 업데이트 할 수 있다.

 

버전 28.0.0 은 Android Support Library 의 마지막 릴리즈다.

더 이상의 android.support 라이브러리 릴리즈는 없다.

새로운 기능 개발은 모두 androidX 네임스페이스에서 이루어진다.



Migrate

Android studio 3.2 이상 부터는 하단의 메뉴에서 쉽게 migration 할 수 있다.

(Refactor > Migrate to AndroidX)

 

리팩토링 명령은 두 개의 플래그를 사용한다. 기본적으로 둘 다 gradle.properties 파일에서 true 로 설정되어 있다.

 

android.useAndroidX=true

Android 플러그인은 지원 라이브러리 대신 적절한 AndroidX 라이브러리를 사용한다.

 

android.enableJetifier=true

Android 플러그인은 바이너리를 다시 작성해 기존 타사 라이브러리를 자동으로 이전하여 AndroidX 를 사용한다.



Example

하단은 기존 Support Library 를 migration 한 예시이다.

◼ From

 

◼ To



728x90
댓글