AndroidX - Android扩展库
引用自AndroidX文档
我们正在推出一个新的包结构,以使与Android操作系统捆绑的包和与您的应用程序的APK打包的包更清晰。未来,android.*包层次结构将保留用于随操作系统一起提供的Android软件包。其他包将作为AndroidX库的一部分发行在新的androidx.*包层次结构中。
AndroidX的必要性
AndroidX是一个重新设计的库,以使包名称更加清晰。从现在开始,android层次结构仅用于Android操作系统自带的android默认类,而其他库/依赖项将成为androidx的一部分(更有意义)。因此,所有新的开发都将在androidx中更新。
com.android.support.** : androidx.
com.android.support:appcompat-v7 : androidx.appcompat:appcompat
com.android.support:recyclerview-v7 : androidx.recyclerview:recyclerview
com.android.support:design : com.google.android.material:material
完整的AndroidX包映射
以前,support library
使用SDK版本,但AndroidX使用语义化版本
。它将从28.0.0重新版本为1.0.0。
如何迁移现有项目
在Android Studio 3.2(2018年9月)中,有一个直接将现有项目迁移到AndroidX
的选项。这会自动重构所有包。
在迁移之前,强烈建议备份您的项目。
现有项目
- Android Studio > Refactor菜单 > 迁移到AndroidX...
- 它将分析并打开底部的Refactor窗口。接受要执行的更改。
![image](https://istack.dev59.com/DEV2M.webp)
新项目
将以下标志放入您的gradle.properties
中
android.enableJetifier=true
android.useAndroidX=true
查看 @库映射以获得相等的 AndroidX 包。
查看 @迁移到 AndroidX 的官方页面
迁移中的问题
- 如果你构建应用程序,在迁移后发现一些错误,则需要修复这些次要错误。你不会被卡住,因为这很容易修复。
- 第三方库在目录中没有转换为 AndroidX,但是它们在运行时由Jetifier转换,因此不要担心编译时错误,你的应用程序将完美运行。
Support 28.0.0 是最后一个版本吗?
来自Android Support Revision 28.0.0
这将是 android.support 打包下的最后一个功能发布版本,鼓励开发人员迁移到 AndroidX 1.0.0
所以选择 AndroidX,因为从现在开始 Android 只会更新 androidx 包。
进一步阅读
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
android
核心包转换到androidx
包? - Khemraj Sharma