AndroidX概述
AndroidX是Android团队用于在Jetpack中开发,测试,打包,版本和发布库的开源项目 。AndroidX是对原始Android 支持库的重大改进 。与支持库一样,AndroidX与Android操作系统分开提供,并提供跨Android版本的向后兼容性。与支持库不同的是通过AndroidX可以看到实时实现的特性和bug修复,升级个别依赖,不需要对使用的所有其他库进行更新。AndroidX未来将完全取代支持库。此外,AndroidX还包括以下功能:
AndroidX中的所有软件包都以字符串开头,位于一致的命名空间中androidx。支持库包已映射到相应的androidx.*包中。
与支持库不同,AndroidX软件包是单独维护和更新的。这些androidx包使用 从版本1.0.0开始的严格语义版本控制。您可以单独更新项目中的AndroidX库。
所有新的支持库开发都将在AndroidX库中进行。这包括维护原始支持库工件和引入新的Jetpack组件。
AndroidX带来的依赖库变化
以下为常用的依赖库,
Old build artifact | AndroidX build artifact |
---|---|
com.android.support:support-compat | androidx.core:core:1.0.0+ |
com.android.support:appcompat-v7 | androidx.appcompat:appcompat:1.0.0+ |
com.android.support:recyclerview-v7 | androidx.recyclerview:recyclerview:1.0.0+ |
com.android.support.constraint:constraint-layout | androidx.constraintlayout:constraintlayout:1.1.3+ |
com.android.support:design | com.google.android.material:material:1.0.0+ |
com.android.support:viewpager | androidx.viewpager:viewpager:1.0.0+ |
com.android.support:support-fragment | androidx.fragment:fragment:1.0.0+ |
com.android.support:multidex | androidx.multidex:multidex:2.0.1+ |
com.android.support:support-v4 | androidx.legacy:legacy-support-v4:1.0.0+ |
迁移到AndroidX步骤
1.首先你的Android Studio版本至少为3.2.0以上,gradle版本4.10以上,以及compileSdkVersion
为28以上
2.修改project目录下 gradle.properties,在里面添加两行代码:
# 表示使用 androidx
android.useAndroidX=true
# 表示将第三方库迁移到 androidx
android.enableJetifier=true
3.使用Android Studio的一键迁移的功能Refactor -> Migrate to AndroidX ,然后点击sync
4.进行完转换后发现代码是一片报红,无法编译运行,此时则只能进行手动修改导包了
需要检查修改报红的导包和xml,修改后如下:
5.项目中引用的第三方库进行升级兼容AndroidX,现在主流的三方库都已进行了AndroidX适配,若有些库必须使用并没有适配AndroidX,则只能降低版本使用
6.从support库迁移至androidx后,若使用了混淆,则必须在混淆文件中添加以下配置:
-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**