从v28开始, android的support库将会进行改进, 28.0.0将会是support库的终结版本. 未来新的特性和改进都会进入Androidx包.
文中先讲述了为什么要进行如此大规模的革新, 主要原因是support库的命名已经越来越令人迷惑. 包的尺寸越来越臃肿.
more sustainable growth, better modularity, and smaller code size.
如果要对现有项目进行更新, 可以使用android studio提供的自动转换功能:
image.png
前提是你的项目build.gradle中的插件版本要在3.2.0以上. 这也意味着你的android studio版本不能太低.
不可以在一个项目中同时使用support库和androidx库, 会造成编译不通过.
可能会有类似如下的编译报错:
Manifest merger failed : Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.0.0-beta01] AndroidManifest.xml:22:18-86
is also present at [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:11:5-49:19 to override.
另外如果遇到Program type already present报错, 可以参考这个办法, 可能能够解决
使用androidx时Program type already present报错的一种解决尝试