AndroidX是一个开源项目,Android团队用它结合Jetpack来进行开发、测试、打包、发布类库。
AndroidX是Android Support Library的一个主要改进。像Support Library一样,AndroidX是在AndroidOS之外单独提供的,并且根据Android不同版本提供向后兼容能力。
AndroidX通过提供同等的特性、新的类库来完全代替以往的Support Library。除此之外,AndroidX包括下面的特性:
1.AndroidX里所有的包名都保持一致,使用以androidx开头的命名空间。Support Library都对应着使用androidx.*的包名。旧的类库和新的类库的对应关系可以参见:
https://developer.android.com/jetpack/androidx/migrate
2.和Support Library不同,AndroidX的包是独立维护和更新的。使用的是严格的Semantic 版本命名规范。可以在项目里进行独立更新。
3.所有新的Support Library开发都将转移到AndroidX类库中。包括原始的Support Library维护以及新的Jetpack组件的引入。
使用AndroidX
如何将AndroidX迁移到现有项目,请参见迁移章节:https://developer.android.com/jetpack/androidx/migrate
如果想使用AndroidX创建一个新的项目,需要将SDK编译版本设置为Android9.0以上,并且在gradle.properties文件中设置下面2个flag的值:
android.useAndroidX: 当设置为true的时候,Android plugin使用适当的AndroidX类库而不再使用Support Library。 默认的属性值是False。
android.enableJetifier: 当设置为true,Android plugin重写第三方类库的二进制文件,将他们自动迁移到AndroidX。默认的属性值是False。
其他资源
Jetpack组件是AndroidX 库里面的一部分。
想得到关于从Support Library重构为AndroidX的其他信息,可以访问:
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html