티스토리 뷰
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
'Android' 카테고리의 다른 글
객체 직렬화 - Serializable (0) | 2020.02.28 |
---|---|
TextView 글자크기를 동적으로 변경하기 (0) | 2020.02.21 |
Gradle 로 여러가지 버전 생성하기 (2) | 2020.02.10 |
배터리 최적화 제외하기 (2) | 2020.02.06 |
Android 에서 XML 을 통한 다국어 지원 (0) | 2020.02.04 |
- Total
- Today
- Yesterday
- android flag activity
- android activity flag
- Intent
- 앱테크
- bindservice
- 무료 채굴
- RoomDatabase
- 앱테크 추천
- 리워드앱
- task
- Android Service
- notifyDataSetChanged
- 안드로이드 서비스
- p2e
- BroadcastReceiver
- 무료채굴
- task 생성
- onCreateContextMenu
- 리워드 어플
- mPANDO
- M2E
- android task
- StartService
- WEMIX
- registerForContextMenu
- onContextItemSelected
- 안드로이드 인텐트
- android intent
- StringUtils
- 채굴앱
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |