AndroidX的来历

AndroidX是对Android Support Library的升级和统一。由于Android在版本升级过程中不断有新的API加入,在新版本的Android SDK中可能使用了新的API,这样使用新API的应用程序在运行在老版本Android系统中将会发生method not found的异常而崩溃。为了使新的API能够在老版本的系统中使用,Android推出了Android Support Library,出现了support-v4(表示最低兼容到API4/Android 1.6),support-v7(表示最低兼容到API7/Android 2.1)等众多 Support Library,十分混乱,且目前低版本Android的市场占有率很低,为了控制这种乱像,Android推出了AndroidX,用来替换 Support Library。

Android Support Library与AndroidX的区别与联系

AndroidX是对Android Support Library升级,AndroidX中的API随着拓展库发布,不会依赖具体的系统版本,它们之间不能混合使用。Android Support Library中提供的库的包名都是以android.support.,在AndroidX中包名变成了androidx.

如何升级Android Support Library到AndroidX

推荐在项目中使用AndroidX替代Support Library,在最新的Android Studio中,新建项目时已经默认使用AndroidX。在老项目中,可以通过Refactor -> Migrate to AndroidX一键升级到AndroidX,Android Studio会AndroidX将当前的代码压缩备份为zip包,然后将Support Library替换为AndroidX的最新版本。一键升级后可能导致工程编译失败,这时需要根据具体的编译错误进行修改,实在无法升级可以使用zip将工程还原。

AndroidX依赖库格式

在项目中使用AndroidX与使用其他第三方框架的方式一样,在build.gradle脚本的dependencies闭包中添加

  1. implementation 'androidx.appcompat:appcompat:1.0.0' // 1.0.0改为具体的版本号


当然,像RecycleView等Support Library中的Lib也需要单独添加。