그동안 com.android.support.*
또는 android.support.*
와 작년에 공개한 Android Architecture Component에서 사용하던 android.arch.*
의 패키지 명을 안드로이드 라이브러리 28.0.0부터 새로운 androidx.*
패키지 명으로 교체한다고 한다.
Android Jetpack으로 통합해서 제공하려고 하니 기존 support 라이브러리와 architecture 라이브러리 등을 통합 관리해서 정리된 모습을 보여주고 싶은듯하다.
다행히도 이러한 패키지 명을 교체하는데 있어서 개발자가 공들여야 할 부분은 크지 않다.
구글 블로그에서 AndoridX에 대한 자세한 내용 확인이 가능하다.
AndroidX Refactoring
Android Studio 3.2 이상부터 androidx 패키지 명 대응을 위한 refactoring 도구가 포함되어있다. (이 글을 작성하는 시점에는 일부 오류가 있다고 하는데 다음 Canary 15 이상을 기대하라고 한다.)
Android Studio Refactor
> Refactor to AndroidX
메뉴를 통해 한 번에 변환이 가능하다.
변경하기 전의 dependencies
는 아래와 같다.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
refactor to AndroidX 후에는 아래와 같이 dependencies
변경이 일어난다.
변경 중 아래와 같은 창이 나타나니 참고 가능하다.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
implementation 'com.google.android.material:material:1.0.0-alpha1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha1'
}
다만 현재 Canary 인점과 Android 28 Preview 상태인 점에 따라 compile 정보는 아래와 같이 적용해야 하고, 특히 compileSdkVersion 'android-P'
을 지정해야 한다.
android {
compileSdkVersion 'android-P'
defaultConfig {
applicationId "com.example.taehwankwon.myapplication"
minSdkVersion 21
targetSdkVersion 27
}
}
변경 예정인 패키지들
AndroidX refactoring에서 변경하는 library 정보를 확인할 수 있다.
com.android.support.*
, android.support.*
, android.arch.*
의 패키지들이 모두 androidx라는 이름으로 교체되며, 기존 중구난방인 버전 정보도 모두 2.0.0-alpha1부터 다시 배포된다.
그리고 기존 패키지에 대한 맵핑도 androidx로 교체하는 게 있으니 위 링크를 확인하면 되겠다.
마무리
AndroidX 패키지 명 교체하는 방법을 간단하게 확인하였다, 자세한 내용은 refactoring 링크를 통해 어떠한 패키지가 변경되어있는지 확인하길 바란다.