代码之家  ›  专栏  ›  技术社区  ›  Khemraj Sharma

什么是仙女座

  •  117
  • Khemraj Sharma  · 技术社区  · 7 年前

    我在读安卓的房间图书馆。我看到他们换了包裹 android androidx . 我不明白。请有人解释一下。

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

    即使这个也可以用 安卓 也打包。

    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version"
    
    • 将新的支持库打包到 仙女座 而不是 安卓 .
    • 现有项目中的用例和影响因素。
    4 回复  |  直到 6 年前
        1
  •  176
  •   Khemraj Sharma    6 年前

    Android扩展库

    AndroidX documentation

    我们正在推出一种新的包装结构,以使其更清晰 软件包与Android操作系统捆绑在一起,并且 与应用程序的apk一起打包。继续,安卓。*软件包 将为随附的Android软件包保留层次结构 操作系统。其他套餐将在新的Androidx中发布。* 作为androidx库的一部分的包层次结构。

    仙女座的需要

    androidx是重新设计的库,以使包名称更清晰。所以从现在开始 安卓 层次结构将只适用于Android默认类,它与Android操作系统一起提供。其他库/依赖项将是 仙女座 (更合理)。所以从现在起,所有新的开发都将在Androidx中更新。

    com.android.support.** 仙女座。
    com.android.support:appcompat-v7: androidx.appcompat:应用程序兼容性 com.android.support:recyclerview-v7: androidx.recyclerview:回收视图 com.android.support:设计: com.google.android.material:材料

    Complete Artifact mappings for AndroidX packages

    仙女座的用途 Semantic-version

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

    如何迁移当前项目

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

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

    现有项目

    • android studio>重构菜单>迁移到androidx…
    • 它将分析并打开底部的折射窗。接受要完成的更改。

    image

    新建项目

    把这些旗子放在你的 gradle.properties

    android.enableJetifier=true
    android.useAndroidX=true
    

    检查@ Library mappings for equal AndroidX package .

    检查@ Official page of Migrate to AndroidX

    What is Jetifier?

    迁移的错误

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

    支持28.0.0是最新版本吗?

    Android Support Revision 28.0.0

    这将是 android.support下的最后一个功能版本 包装 以及鼓励开发人员迁移到Androidx1.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

        2
  •  17
  •   Khemraj Sharma    7 年前

    基于 documentation :

    androidx是一种新的包结构,可以更清楚地了解哪些包 与Android操作系统捆绑在一起,并打包 你的应用程序的apk。向前看,Android.*软件包层次结构 将为随操作一起提供的Android软件包保留 系统;其他包将在新Androidx*包中发布。 等级制度。

    重新设计的包结构是为了鼓励更小更集中的库。您可以找到关于工件映射的详细信息 here .

    当支持的最小SDK级别为14时,有支持库(包含向后兼容的组件和包)命名为“V7”,新命名明确了与平台捆绑的API和应用程序开发人员在差异上使用的库之间的划分。Android的租赁版本。你可以参考 official announcement 了解更多详细信息。

        3
  •  9
  •   Basi    6 年前

    仙女座 是Android团队用来开发、测试、打包、版本和发布库的开源项目 Jetpack .

    仙女座 是对原版的重大改进 Android Support Library . 与支持库一样,Androidx与Android操作系统分开发布,并在Android版本之间提供向后兼容性。androidx通过提供特性奇偶校验和新的库完全取代了支持库。

    Androidx包括以下功能:

    • androidx中的所有包都活在一个一致的命名空间中,从 字符串androidx。已映射支持库包 放入相应的androidx.*包中。对于所有 旧类并将工件构建到新类,请参见包 重构页。

    • 与支持库不同,Androidx包是单独维护和更新的。Androidx软件包使用严格的 Semantic Versioning 从1.0.0版开始。你可以更新androidx 独立于项目中的库。

    • 所有新的支持库开发都将在Androidx中进行 图书馆。这包括维护原始支持库 新的Jetpack组件的工件和引入。

    使用Androidx

    Migrating to AndroidX 了解如何迁移现有项目。

    如果要在新项目中使用AndroidX,需要将编译SDK设置为Android 9.0(API级别28)或更高版本,并在您的 gradle.properties 文件。

    • android.useandroidx:当设置为true时,android插件使用 适当的androidx库而不是支持库。国旗 如果未指定,则默认为false。

    • android.enablejefier:当设置为true时,android插件 自动迁移现有的第三方库以使用Androidx 通过重写二进制文件。如果标志为 未指定。

    对于 工件映射 看见 this

        4
  •  0
  •   raj kavadia    6 年前

    它与AppCompat版本的支持相同,但它的v4和v7版本的混乱程度较低,因此使用Android XML元素的不同组件有很大帮助。