什么是安卓X?

新手上路,请多包涵

我正在阅读有关 Android 的房间库的信息。我看到他们将包 android 更改为 androidx 。我不明白。有人可以解释一下吗?

 implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

即使这也适用于 android 包。

 implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"

  • 什么需要在 androidx 而不是 android 中打包新的支持库?
  • 现有项目中的用例和影响因素。

原文由 Khemraj Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

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 包的完整工件映射

AndroidX 使用 语义版本

以前, support library 使用 SDK 版本,但 AndroidX 使用 Semantic-version 。它将从 28.0.0 → 1.0.0 重新版本。

如何迁移当前项目

在 Android Studio 3.2(2018 年 9 月)中,可以直接选择将现有项目迁移到 AndroidX 。这会自动重构所有包。

在迁移之前,强烈建议备份您的项目。

现有项目

  • Android Studio > 重构菜单 > 迁移到 AndroidX…
  • 它将分析并在底部打开 Refractor 窗口。接受要完成的更改。

图片

新项目

把这些标志放在你的 gradle.properties

 android.enableJetifier=true
android.useAndroidX=true

检查 @Library 映射以获取相等的 AndroidX 包

查看 @Migrate to AndroidX官方页面

什么是喷射器?

迁移的错误

  • 如果您构建应用程序,并在迁移后发现一些错误,那么您需要修复这些小错误。你不会被困在那里,因为这很容易解决。
  • 3rd 方库不会在目录中转换为 AndroidX,但它们会在运行时由 Jetifier 转换,所以不用担心编译时错误,您的应用程序将完美运行。

支持 28.0.0 是最后一个版本吗?

来自 Android 支持修订版 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

原文由 Khemraj Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

我从这个 Android 开发峰会视频 中了解了 AndroidX。总结是——

  1. 不再支持库: Google 将永远不会在支持库命名空间下维护 android 支持库。因此,如果您想在支持库中找到错误的修复,您必须在 AndroidX 中迁移您的项目
  2. 更好的包管理: 用于标准化和独立的版本控制。因为以前的支持库版本控制太混乱了。它将释放您 “所有 com.android.support 库必须使用完全相同的版本规范” 消息的痛苦。
  3. 其他优秀的库已迁移到 AndroidX :Google play 服务、Firebase、Mockito 2 等已迁移到 AndroidX。
  4. 新库将使用 AndroidX 工件发布: 所有库都将位于 AndroidX 命名空间中,如 Android Jetpack

原文由 Gk Mohammad Emon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏