了解AndroidX

包介绍

简单地说就是AndroidX.*的库可以在不同的Android版本上使用。跟之前的Android.*包相比,x包是相互独立的。比如之前我们如果使用support为27.1.1的相关依赖库时。可能需要所有相关的support 库都为27.1.1。如果引入三方库里版本不一致,可能存在bug,也就是所谓的包冲突。

通过AndroidX,我们可以看到实时实现的特性和bug修复。升级个别依赖,不需要对使用的所有其他库进行更新。这就和我们使用Github上的开源库一样的,出了问题,我们可以提出bug和意见。作者修复后,发布新版本,我们就可以直接替换使用了。更加的透明便捷。2018年9月发布了1.0.0稳点版本。

包变化

了解AndroidX
了解AndroidX
28.0.0的稳定版本还是采用android.support,但是所有后续的功能版本都将采用androidx。
AndroidX里所有的包名都保持一致,使用以androidx开头的命名空间。如上图

包迁移

考虑到手动替换的麻烦性,在Android Studio 3.2 Canary中添加了一键迁移的功能Refactor -> Migrate to AndroidX
了解AndroidX

包使用

要求gradle版本3.2.0+,compileSdkVersion为28以上。
并且在gradle.properties文件中设置下面2个flag的值:
android.useAndroidX: 为true时,Android plugin使用适当的AndroidX类库而不再使用Support Library。 默认属性值False。
android.enableJetifier: 为true时,Android plugin重写第三方类库的二进制文件,将他们自动迁移到AndroidX。默认属性值False。

最后

只能说这是一种趋势吧,虽然现在看起来没啥用,自己动手玩玩就总是有必要的。

参考

[1] https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
[2] https://blog.****.net/qq_17766199/article/details/81433706
[3] https://www.jianshu.com/p/433979098860