Answers:
在今年的Google I / O(18)中,Google宣布了Jetpack,它设置/收集了许多库,以简化开发人员的生活。
Jetpack包括以前引入的Android体系结构组件(ViewModel,Room,Paging,LiveData等),以及新引入的体系结构组件(如WorkManager,Navigation)。除此以外,Jetpack还具有其他库集,例如AndroidX,AndroidKTX等。
AndroidX是Android支持库(如支持,数据绑定,设计等)的新包结构。
例如,现在在病房中,开发人员将使用androidx.databinding。而不是android.databinding。在我们的项目中导入库
这使Google可以在其中的库包中添加SemVer或语义版本控制。对于开发人员,这意味着我们不必为所有支持库使用相同的支持库版本。每种支持或更佳的说法是AndroidX库都会维护自己的版本。
对于开发人员来说,另一个优势是我们不必为项目中的所有支持库维护相同的版本。
关于Jetifier,它将在构建时转换所有依赖项支持包。根据Jetifier的官方文档
Jetifier工具会迁移依赖于支持库的库,以改为依赖等效的AndroidX软件包。该工具可让您直接迁移单个库,而无需使用与Android Studio捆绑在一起的Android gradle插件。
要在项目中使用AndroidX,我们必须将项目的targetSdkVersion设置为28,并在gradle.properties文件中添加以下两行。
android.useAndroidX=true
android.enableJetifier=true
我希望这能回答您的查询。
编辑
此链接具有所有支持库组件及其AndroidX计数器部分的映射。
另请参阅此博客以获取有关AndroidX的详细说明
假设您熟悉AndroidX
。如果没有,请参阅@ this post。
Jetifier
会自动将support libraries
所有依赖项转换为依赖项AndroidX
,如果您未将其设置为,true
则您的项目将同时具有支持(在28.0.0版本之后弃用)和AndroidX软件包,这是多余的。
如果您有PhotoView.java
依赖关系。那使用了支持库AppCompatImageView
。
import android.support.v7.widget.AppCompatImageView;
该类现在移至androidx
package,那么如何PhotoView
获取androidx AppCompatImageView
?应用仍在设备中运行。
谁参加了这次比赛?
Jetifier,它在构建时转换所有依赖项支持包。
Jetifier将在构建项目时转换android.support.v7.widget.AppCompatImageView
为androidx.appcompat.widget.AppCompatImageView
。
从支持库迁移到AndroidX时,启用Jetifier很重要。
请参阅这篇文章,以了解有关AndroidX的更多信息。
使用依赖项类启用Jetifier后,您的代码可能会显示编译时错误。您可以通过删除删除它.idea
,.gradle
然后重新同步项目。
Jetifier有助于将android项目迁移到AndroidX。
Jetifier有助于使第三方库与您的AndroidX项目兼容。
如果您在android项目中未使用任何第三方库,则无需使用Jetifier,因为在迁移到AndroidX的情况下,Jetifier仅有助于“使第三方库”与您的项目兼容。因此,要使您的项目使用Jetifier,请在gradle.properties中编写以下代码。
android.enableJetifier=true
android.useAndroidX=true
如果您不迁移到AndroidX并使用以前使用Android库的方式(例如com.android.support),则无需使这些第三方库兼容,因为这些第三方库已经与以前的方式兼容。使用Android库。在那种情况下,您不需要使用Jetifier,因此,现在您不需要编写上面给出的行,或者您可以简单地编写以下内容以更改将来的值以移至androidx:
android.enableJetifier=false
android.useAndroidX=false
喷射器
该jetifier是一个方便的工具,可以自动迁移你dependencies
要AndroidX
在构建时。没有它,您将需要拥有AndroidX版本的所有依赖项才能迁移,而这种依赖可能会在一段时间内消失。
有一个重要的限制要注意:过滤器仅适用于打包的工件。它不适用于您的源代码,您应自行更新
要启用AndroidX,您需要在gradle.properties
文件中添加2个标志。第一个标志告诉Android插件使用AndroidX
包而不是AppCompat
,第二个标志将启用Jetifier
:
android.useAndroidX=true
android.enableJetifier=true
来自官方文件
当此标志设置为true时,Android插件会通过重写二进制文件来自动迁移现有的第三方库以使用AndroidX依赖项。如果未指定,默认情况下该标志为false。
这对于兼容性很有用。当消费者使用androidX
而生产者使用时support
。例如,当您的项目AndroidX
要使用依赖项而support library
不是AndroidX
[Example]时
将这两行相加android.useAndroidX = true
android.enableJetifier = true
在buid.gradle中对我有用
implementation "com.commonsware.cwac:document:0.3.0"
你的dependencies
。该库版本对具有传递依赖com.android.support:support-annotations:27.0.2
。但是,您希望将其androidx.annotation:annotation
用作使用其他AndroidX依赖项的一部分。Jetifier将以某种方式进行更新com.commonsware.cwac:document
以使用androidx.annotation:annotation
。