Android Jetpack简介

学向勤中得,萤窗万卷书。这篇文章主要讲述Android Jetpack简介相关的知识,希望能为你提供帮助。
参考https://developer.android.com/jetpack
https://developer.android.com/jetpack/androidx
把语言改为English可以查看androidx所有文档
https://developer.android.com/jetpack/androidx/migrate
Android JetpackJetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。
Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。
随着Android 9.0(API级别28)的发布,有一个名为AndroidX的支持库的新版本,它是Jetpack的一部分。 AndroidX库包含现有的支持库,还包括最新的Jetpack组件。
您可以继续使用支持库。 历史工件(那些版本为27及更早版本,打包为android.support。*)将继续在Google Maven上提供。 但是,所有新的库开发都将在AndroidX库中进行。
我们建议在所有新项目中使用AndroidX库。 您还应该考虑将现有项目迁移到AndroidX。
JetpackAndroidX的关系Jetpack是此项目的代号,AndroidX是Jetpack的包含的支持库的具体位置。
所以Jetpack和AndroidX不会特别进行区别。
当然Jetpack好像还包含其他东西,所以一般用Jetpack来代表Google此次的新项目。
AndroidX 概览AndroidX 是 Android 团队用于在 Jetpack 中开发、测试、打包和发布库以及对其进行版本控制的开源项目。
AndroidX 对原始 Android 支持库进行了重大改进。与支持库一样,AndroidX 与 Android 操作系统分开提供,并与各个 Android 版本向后兼容。AndroidX 完全取代了支持库,不仅提供同等的功能,而且提供了新的库。此外,AndroidX 还包括以下功能:
l AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。原support支持库软件包已映射到对应的 androidx.* 软件包。有关所有旧类到新类以及旧编译工件到新编译工件的完整映射,请参 阅迁移到 AndroidX。
l 与支持库不同,AndroidX 软件包会单独维护和更新。androidx 软件包使用严格的语义版本控制,从版本 1.0.0 开始。您可以单独更新项目中的 AndroidX 库。
语义版本控制:MAJOR.MINOR.PATCH (主版本号.次版本号.补丁版本号)
l 所有新支持库的开发工作都将在 AndroidX 库中进行。这包括维护原始支持库工件和引入新的 Jetpack 组件。
使用 AndroidX如需了解如何迁移现有项目,请参 阅迁移到 AndroidX。
如果要在新项目中使用 AndroidX,则需要将compileSdkVersion设置为 Android 9.0(API 级别 28)或更高版本,并在项目根目录的 gradle.properties?文件中 将以下两个 Android Gradle 插件标记 设置为 true。
l android.useAndroidX:如果设置为 true,Android 插件会使用相应的 AndroidX 库,而非支持库。如果未指定,则该标记默认为 false。
l android.enableJetifier:如果设置为 true,Android 插件会重写其二进制文件,自动迁移现有的第三方库以使用 AndroidX。如果未指定,则该标记默认为 false。
迁移到 AndroidXAndroidX 将原始支持库 API 替换为 androidx 命名空间中的软件包。只有软件包和 Maven artifact名称发生了变化;类、方法和字段名称没有改变。
注意:我们建议迁移时在单独的分支中工作。此外,还应设法避免在执行迁移时重构代码。
前提条件迁移之前,请先将您的应用依赖的Android支持库 更新到最新版本:28.0.0。
这是因为,1.0.0 版本的 AndroidX 库 是与支持库 28.0.0版本 等效的二进制文件。
使用 Android Studio 迁移现有项目使用 Android Studio 3.2 及更高版本,您只需从菜单栏中依次选择 Refactor > Migrate to AndroidX,即可将现有项目迁移到 AndroidX。
重构命令使用两个标记。默认情况下,这两个标记在 gradle.properties 文件中都设为 true:
l android.useAndroidX=true
l android.enableJetifier=true
注意:内置的 Android Studio 迁移功能可能并不是一切都能处理。根据您的编译配置,您可能需要手动更新编译脚本和 Proguard 映射。
例如,如果您在一个单独的编译文件中维护依赖项配置,请使用下面提到的映射文件来检查依赖项并将其更新为对应的 AndroidX 软件包。
To migrate an existing project that does not use any third-party libraries with dependencies that need converting, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
要迁移 一个不使用任何需要转换的依赖项的第三方库的现有项目,可以将 android.useAndroidX 标记设置为 true,并将 android.enableJetifier 标记设置为 false。
原支持包的映射https://developer.android.com/jetpack/androidx/migrate/artifact-mappings
下表列出了一些常用的支持包的改变。

com.android.support:appcompat-v7
androidx.appcompat:appcompat:1.0.0
com.android.support:design
【Android Jetpack简介】com.google.android.material:material:1.0.0-rc01
com.android.support:cardview-v7
androidx.cardview:cardview:1.0.0
com.android.support:multidex
androidx.multidex:multidex:2.0.0
com.android.support:support-fragment
androidx.fragment:fragment:1.0.0
com.android.support:support-v4
androidx.legacy:legacy-support-v4:1.0.0
com.android.support:recyclerview-v7
androidx.recyclerview:recyclerview:1.0.0
com.android.support:support-annotations
androidx.annotation:annotation:1.0.0
com.android.support:drawerlayout
androidx.drawerlayout:drawerlayout:1.0.0

类映射https://developer.android.com/jetpack/androidx/migrate/class-mappings
下表列出了从旧命名空间到新 androidx 软件包的当前映射。
Android Jetpack简介

文章图片

Android X 最新版本查看https://developer.android.com/jetpack/androidx/versions

    推荐阅读