Khe*_*raj 204 android android-architecture-components android-jetpack androidx
我正在阅读关于Android的房间库.我看到他们改变包装android来androidx.我不明白.请有人解释一下.
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
即使这也适用于android包装.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)
androidx而不是android.Khe*_*raj 279
我们正在推出一种新的软件包结构,以便更清楚哪些软件包与Android操作系统捆绑在一起,并与您的应用程序的APK一起打包.展望未来,android.*包层次结构将保留给随操作系统提供的Android包.其他软件包将作为AndroidX库的一部分在新的androidx.*包层次结构中发布.
AndroidX是重新设计的库,使包名更清晰.所以从现在开始,android层次结构将仅用于android默认类,它附带android操作系统.和其他库/依赖项将成为androidx的一部分(更有意义).所以从现在起所有的新开发都将在androidx中更新.
com.android.support.**:androidx.
com.android.support:appcompat-v7:androidx.appcompat:程序兼容性
com.android.support:recyclerview-v7:androidx.recyclerview:recyclerview
com.android.support:design:com.google.android.material:材料
以前,support library使用SDK版本但AndroidX使用Semantic-version.它将从28.0.0→1.0.0重新版本.
在Android Studio 3.2(2018年9月)中,可以直接选择将现有项目迁移到AndroidX.这将自动折射所有包.
在迁移之前,强烈建议您备份项目.
现有项目
新项目
把这些标志放在你的 gradle.properties
android.enableJetifier=true
android.useAndroidX=true
Run Code Online (Sandbox Code Playgroud)
检查@ Library映射是否具有相同的AndroidX包.
这将是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
Sag*_*gar 26
根据文档:
androidx是一种新的软件包结构,可以更清楚地将哪些软件包与Android操作系统捆绑在一起,并与您的应用程序的APK一起打包.展望未来,android.*包层次结构将保留给随操作系统提供的Android包; 其他包将在新的androidx.*包层次结构中发布.
重新设计的包结构旨在鼓励更小,更集中的库.您可以在此处找到有关工件映射的详细信息.
当支持的最小SDK级别为14时,有一个名为"v7"的支持库(包含用于向后兼容的组件和包),新命名清楚地理解了与平台捆绑的API与使用的应用程序开发人员库之间的划分在不同版本的Android上.您可以参考官方公告了解更多详情.
Bas*_*asi 17
AndroidX是Android团队用来在Jetpack中开发,测试,打包,版本和发布库的开源项目。
AndroidX是对原始Android支持库的重大改进。与支持库一样,AndroidX与Android OS分开提供,并在Android版本之间提供向后兼容性。AndroidX通过提供功能奇偶校验和新库来完全替代支持库。
AndroidX包含以下功能:
AndroidX中的所有程序包都位于以字符串androidx开头的一致名称空间中。支持库包已映射到相应的androidx。*包中。有关所有旧类和构建构件到新构件的完整映射,请参见Package Refactoring页面。
与支持库不同,AndroidX软件包是分别维护和更新的。androidx软件包Semantic Versioning从1.0.0版开始使用严格的版本。您可以在项目中独立更新AndroidX库。
所有新的支持库开发都将在AndroidX库中进行。这包括维护原始支持库工件以及引入新的Jetpack组件。
使用AndroidX
请参阅迁移到AndroidX,以了解如何迁移现有项目。
如果要在新项目中使用AndroidX,则需要将编译SDK设置为Android 9.0(API级别28)或更高版本,并将以下两个Android Gradle插件标志都设置为true gradle.properties。
android.useAndroidX:当设置为true时,Android插件将使用适当的AndroidX库而不是支持库。如果未指定,默认情况下该标志为false。
android.enableJetifier:设置为true时,Android插件会通过重写二进制文件来自动迁移现有第三方库以使用AndroidX。如果未指定,默认情况下该标志为false。
对于工件映射,请参阅此
本文Android Jetpack:最近的公告对Android的支持库意味着什么?讲得很好
如今,许多人认为支持库是Android应用程序开发的重要组成部分,以至于Google Play商店中99%的应用程序都在使用它。但是,随着支持库的增长,围绕该库的命名约定的不一致性逐渐蔓延。
最初,每个软件包的名称表示该软件包支持的最低API级别,例如support-v4。但是,支持库的版本26.0.0将最低API增加到14,因此今天许多软件包名称与最低支持API级别无关。当support-v4和support-v7软件包的最小API均为14时,很容易看出人们为什么感到困惑!
为了消除这种混乱,Google目前正在将支持库重构为新的Android扩展库(AndroidX)包结构。AndroidX将具有简化的程序包名称,以及可以更好地反映每个程序包的内容及其支持的API级别的Maven groupId和artifactIds。
根据当前的命名约定,还不清楚哪些软件包与Android操作系统捆绑在一起,哪些软件包与应用程序的APK(Android软件包套件)打包在一起。为了消除这种混乱,所有未捆绑的库都将移至AndroidX的androidx。*名称空间,而android。*包层次结构将保留给Android操作系统随附的包。
我从这个Android Dev Summit 视频中了解了 AndroidX 。总结就是——
我这边只是所有可用答案的补充
需要AndroidX
根据当前的命名约定,目前尚不清楚哪些软件包与Android操作系统捆绑在一起,哪些软件包与应用程序的APK(Android Package Kit)捆绑在一起。为了消除这种混乱,所有未捆绑的库都将移至AndroidX的androidx。*名称空间,而android。*软件包层次结构将保留给Android操作系统随附的软件包。
除了这个,
最初,每个软件包的名称表示该软件包支持的最低API级别,例如support-v4。但是,支持库的版本26.0.0将最低API增加到14,因此今天,许多软件包名称都与最低支持的API级别无关。当support-v4和support-v7软件包的最小API均为14时,很容易看出人们为什么感到困惑!因此,现在有了AndroidX,就不再依赖于API级别了。
另一个重要的变化是AndroidX工件将独立更新,因此您将能够更新项目中的各个AndroidX库,而不必一次更改每个依赖关系。那些令人沮丧的“ 所有com.android.support库必须使用完全相同的版本规范 ”消息应该成为过去!
androidx将取代support library后28.0.0。您应该迁移您的项目以使用它。androidx使用Semantic Versioning. 使用AndroidX不会被库名和包名中显示的版本混淆。生活变得更轻松
| 归档时间: |
|
| 查看次数: |
99702 次 |
| 最近记录: |