首页 文章

什么是androidx

提问于
浏览
25

我正在阅读关于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 .

  • 现有项目中的用例和影响因素 .

2 回答

  • 35

    AndroidX - Android扩展库

    来自AndroidX documentation

    我们正在推出一种新的软件包结构,以便更清楚哪些软件包与Android操作系统捆绑在一起,并与您的应用程序的APK一起打包 . 展望未来,android . *包层次结构将保留给随操作系统提供的Android包 . 其他软件包将作为AndroidX库的一部分在新的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是重新设计的库,使包名更清晰 . 所以从现在起 android 层次结构将仅用于Android操作系统附带的android默认类 . 和其他库/依赖项将成为 androidx 的一部分 . (更有意义)所以从现在起所有的新开发都将在androidx中更新 .

    complete mapping for AndroidX packages

    AndroidX使用Semantic-version

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

    如何迁移当前项目

    在Android Studio 3 . 2(2018年9月)中,可以直接选择将现有项目迁移到 AndroidX . 这将自动折射所有包 .

    Before you migrate, it is strongly recommended to backup your project.

    Use with Existing project

    • Android Studio>重构菜单>迁移到AndroidX ...

    • 它将分析并打开底部的Refractor窗口 . 接受要完成的更改 .

    image

    Use with New project

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

    android.enableJetifier=true
    android.useAndroidX=true
    

    检查@ Library mappings for equal AndroidX package .

    检查@ Official page of Migrate to AndroidX

    什么是Jetifier?

    迁移的错误

    • 如果您构建应用程序,并在迁移后发现一些错误,那么您需要修复这些小错误 . 你不会被卡在那里,因为这可以很容易地修复 .

    • 第三方库未在目录中转换为AndroidX,但它们在运行时由Jetifier转换,因此不必担心编译时错误,您的应用程序将完美运行 .

    支持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

  • 6

    基于documentation

    androidx是一种新的包结构,可以更清楚地将哪些包与Android操作系统捆绑在一起,并与您的应用APK一起打包 . 展望未来,android . *包层次结构将保留给随操作系统提供的Android包;其他包将在新的androidx . *包层次结构中发布 .

    重新设计的包结构旨在鼓励更小,更集中的库 . 您可以找到有关工件映射的详细信息here .

    当支持的最小SDK级别为14时,有一些支持库(包含用于向后兼容的组件和包)名为"v7",新命名使得理解与平台捆绑的API与用于不同的app开发人员的库之间的划分变得清晰 . android版本 . 有关更多详细信息,请参阅official announcement .

相关问题