我正在阅读关于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 回答
AndroidX - Android扩展库
来自AndroidX documentation
需要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窗口 . 接受要完成的更改 .
Use with New project
把这些标志放在你的
gradle.properties
检查@ Library mappings for equal AndroidX package .
检查@ Official page of Migrate to AndroidX
什么是Jetifier?
迁移的错误
如果您构建应用程序,并在迁移后发现一些错误,那么您需要修复这些小错误 . 你不会被卡在那里,因为这可以很容易地修复 .
第三方库未在目录中转换为AndroidX,但它们在运行时由Jetifier转换,因此不必担心编译时错误,您的应用程序将完美运行 .
支持28.0.0是最后一个版本?
来自Android Support Revision 28.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
基于documentation:
重新设计的包结构旨在鼓励更小,更集中的库 . 您可以找到有关工件映射的详细信息here .
当支持的最小SDK级别为14时,有一些支持库(包含用于向后兼容的组件和包)名为"v7",新命名使得理解与平台捆绑的API与用于不同的app开发人员的库之间的划分变得清晰 . android版本 . 有关更多详细信息,请参阅official announcement .