什么是Android Jetpack?

ish*_*aan 45 android android-jetpack

我已经看过Google I/O 2018的开发人员主题演讲,我已经在Android开发者网站上阅读了jetpack主页,但我无法理解它实际上是什么.对我来说,它似乎只是我们已经使用的一堆API的新名称.是否会有IDE为我们做的事情或者在编码时有用的东西?Jetpack中的所有组件都指向他们原来的Android文档,并没有实际显示出与以前相比的任何差异.有人可以用简单的术语解释Jetpack实际上对我作为开发人员的作用,除了网页上的俱乐部文档吗?

Epi*_*rce 36

在其官方网站上,它说:

Android Jetpack是一套库,工具和架构指南,可帮助您快速轻松地构建出色的Android应用程序.它提供了通用的基础架构代码,因此您可以专注于使您的应用独特的原因

从技术上讲,它是支持库,android-ktx和Android架构组件重新命名为单个模块化"实体".

这就是所有非Android扩展库(如支持等)被重新打包的原因androidx.**.

引自Alan Viverette(来自Android Framework团队):

Jetpack是一项旨在改善开发人员体验的更大范围的工作,但AndroidX构成了技术基础.从技术角度来看,它仍然是您在支持库和架构组件下看到的相同库.

随着最佳实践的改变,您可能还会在android包中找到未包含在Jetpack中的库.

有关详细信息,请参阅https://developer.android.com/topic/libraries/support-library/refactor.

  • 谢谢你的解释!所以基本上,只是相同的图书馆,现在在新的旗帜下. (5认同)

Tap*_*nHP 18

基本上它只是一组有用的东西组合在一起,分为4类

基础

建筑

行为

UI

现在,在相对类别中添加了一些核心内容,如AppCompat库,体系结构组件,片段,动画和转换以及更多内容,并且新添加了这5个内容.

  1. Android Ktx

    Android KTX的目的是通过利用Kotlin语言功能(如扩展函数/属性,lambdas,命名参数和参数默认值),使Kotlin的Android开发更简洁,愉快和惯用

  2. 导航

    导航架构组件简化了Android应用程序中导航的实现.这与在应用程序中实现清晰流程有关.下面这个视频,你可以找到关于此主题的一个非常好的解释.

  3. 分页

    分页库使您可以更轻松地在应用程序的RecyclerView中逐步和优雅地加载数据.这是来自Yigit Boyar 的I/O谈话,他很好地解释了这一点.

  4. 切片是一种UI模板,可以在Google搜索应用中以及稍后在Google智能助理等其他位置显示来自您应用的丰富,动态和互动内容.通过在全屏应用体验之外启用参与,切片可以帮助用户更快地执行任务.您可以将切片构建为App Actions的增强功能.从这次演讲中了解更多

  5. WorkManager [我个人建议你检查一下这个]

    您可以使用WorkManager优雅地安排任务.通过WorkManager API可以轻松指定可延迟的异步任务以及何时运行它们.这些API允许您创建任务并将其交给WorkManager立即运行或在适当的时间运行.本视频深入解释.

    我在这里创建了一个播放列表.它包含所有与Jetpack相关的最佳视频,希望这会有所帮助.

  • 还有 MVVM 而不是 MVC (2认同)

Gab*_*tti 10

来自博客:

Android Jetpack是下一代Android组件,它将支持库的优势 - 向后兼容性和即时更新 - 集成到更大的组件集中,从而可以快速轻松地构建强大,高质量的应用程序.Android Jetpack管理后台任务,导航和生命周期管理等活动,因此您可以消除样板代码并专注于使您的应用变得更好的原因.Android Jetpack旨在与Kotlin配合使用,使用Android KTX为您节省更多代码.今天发布的新Android Jetpack组件包括WorkManager,Paging,Navigation和Slices.

来自官方文件:

Android Jetpack是一组库,开发人员工具和架构指南,可帮助您快速轻松地构建出色的Android应用程序.它提供了通用的基础架构代码,因此您可以专注于使您的应用独特的原因

在此输入图像描述


Ami*_*har 10

Android Jetpack是Android软件组件的集合,可帮助我们构建出色的Android应用程序.

这些软件组件有助于:

  • 遵循最佳实践并编写样板代码.
  • 使复杂事物变得非常简单.

早些时候有许多挑战如下:

  • 管理活动生命周期.
  • 幸存的配置变化.
  • 防止内存泄漏.

所有这些主要问题都已通过Android Jetpack的软件组件解决.

因此,所有问题的解决方案是Andriod Jetpack.

关于Jetpack的另一个最重要的事情是,它比Android平台更频繁地更新,以便我们始终获得最新版本.

Jetpack包含androidx.*包库,与平台API分开.这意味着它提供向后兼容性.

Android Jetpack组件

Android Jetpack组件是一组库,这些库可单独采用并构建为协同工作,同时利用Kotlin语言功能提高我们的工作效率.

这些软件组件分为4类,如下:

  • 基础组件
  • 架构组件
  • 行为组件
  • UI组件

让我们一个接一个地看.

基础组件

基础组件提供以下内容:

  • 向后兼容性
  • 测试
  • Kotlin语言支持.

所有基础组件如下:

  • App Compat
  • Android KTX
  • Multidex
  • 测试

架构组件

架构组件帮助我们构建:

  • 强大的应用程序
  • 可测试应用程序
  • 可维护的应用程序

所有架构组件如下:

  • 数据绑定
  • 生命周期
  • LiveData
  • 导航
  • 分页
  • 房间
  • 视图模型
  • WorkManager中

行为组件

行为组件有助于与标准Android服务集成

  • 通知
  • 权限
  • 分享
  • 助理

所有行为组件如下:

  • 下载管理器
  • 媒体和播放
  • 通知
  • 权限
  • 喜好
  • 分享

UI组件

UI组件提供小部件和帮助程序,使您的应用程序不仅容易,而且使用起来很愉快.

所有UI组件如下:

  • 动画和过渡
  • 汽车
  • 表情符号
  • 分段
  • 布局
  • 调色板
  • 电视
  • 穿

参考文章


Abh*_*mar 6

正如我们都在引用官方网站所说,

Android Jetpack 提供了一系列未绑定到任何特定 Android 版本的非捆绑库,使开发人员能够在旧版本的 Android 操作系统上支持新功能。除了向后兼容性之外,Jetpack 还承诺通过提供样板来处理重复性任务(例如管理应用程序生命周期),帮助您用更少的代码完成更多工作。

所以现在让我们把它分解成点点滴滴,它只是说两件事

  1. 因此,Jetpack 下的所有库都是相互独立的。您可以更新任何特定库,而无需同时更新其他库。你还记得那些警告,

那些令人沮丧的“所有 com.android.support 库必须使用完全相同的版本规范”消息现在应该成为过去。

但那是当您使用Androidx库而不是Support库时。

  1. 现在 Jetpack 下的所有这些库都在他们身边做了很多样板代码,所以你不需要写很多代码,只需要担心逻辑。Ex - 还记得处理屏幕旋转吗?(ViewModel负责),通过分页处理无限滚动?(现在你有了Paging库),处理后退按钮(导航库就在那里),手动处理依赖注入或使用 Dagger(Hilt是你的朋友),处理相机的不同用例并仍然修复生产中的错误(CameraX是一个简单的方法)(只是其中的几个)

单独推出 JetPack 也有其他原因,让我们也讨论一下。

  1. 最初,每个包的名称表示该包支持的最低 API 级别,例如 support-v4。但是,支持库的 26.0.0 版本将最小 API 增加到 14,因此今天许多包名称与支持的最低 API 级别无关。当 support-v4 和 support-v7 软件包的最低 API 都为 14 时,很容易理解为什么人们会感到困惑!。所以现在有了 AndroidX,这种混乱就消失了。

  2. 根据当前的命名约定(支持的命名约定),也不清楚哪些软件包与 Android 操作系统捆绑在一起,哪些与您的应用程序的 APK(Android Package Kit)捆绑在一起。为了消除这种混淆,所有未捆绑的库都将移动到 AndroidX 的 androidx.* 命名空间,而 android.* 包层次结构将保留给 Android 操作系统附带的包。简单地说,现在,android.* 将保留用于与 android 操作系统相关的包,因此这些包无论如何都会以 android.* 包名称开头,而 androidx.* 现在将保留用于与应用程序开发相关的内容。

  3. 除此之外,你还有:

  • 建筑构件
  • 基础组件
  • 用户界面组件
  • 行为组件

所以现在,Jetpack 只不过是这些组件、androidx 和其他工具的超集的一个名称。


Abh*_*bey 6

Android Jetpack 组件

Android Jetpack 组件是一组可单独采用并构建为协同工作的库,同时利用 Kotlin 语言功能提高我们的工作效率。

这些软件组件分为以下 4 类:

  • 基础组件
  • 架构组件
  • 行为组件
  • 用户界面组件

架构组件

所有架构组件如下:

  • 数据绑定:以声明方式将布局中的 UI 元素绑定到应用程序的数据源。
  • 生命周期:管理我们应用程序的活动和片段生命周期。
  • LiveData:通知视图任何数据库更改。
  • 导航:处理应用内导航所需的一切。
  • 分页:按需从数据源逐步加载信息。
  • 房间:流畅的 SQLite 数据库访问。
  • ViewModel:以生命周期意识的方式管理与 UI 相关的数据。
  • WorkManager:根据我们选择的环境管理 Android 中的每个后台作业。

有关更多详细信息,请使用以下链接:- https://blog.mindorks.com/what-is-android-jetpack-and-why-should-we-use-it


And*_*_id 5

Android Jetpack 是 Android 软件组件的集合,可帮助我们构建出色的 Android 应用程序。Android Jetpack 组件是帮助开发强大的 Android 应用程序的库和工具的集合。Jetpack 包含 androidx.* 包库,与平台 API 分离。这意味着它提供向后兼容性。软件组件分为 4 类:

\n
    \n
  • 基础组件
  • \n
  • 架构组件
  • \n
  • 行为成分
  • \n
  • 用户界面组件
  • \n
\n
\n

基础组件 - 基础组件提供向后兼容性、测试、Kotlin 支持。

\n
\n

基础组件是:

\n
    \n
  • 应用程序兼容性:Jetpack Foundation 中的 AppCompat 库包含 v7 库中的所有组件。\n这包括 AppCompat、Cardview、GridLayout、MediaRouter、Palette、RecyclerView、Renderscript、Preferences、Leanback、Vector Drawable、Design、自定义选项卡等。 \n此外,该库为材料设计用户界面提供实现支持,这使得 AppCompat 对于开发人员非常有用。
  • \n
  • Android KTX:KTX 代表 Kotlin Extensions,Android KTX 由一组 Kotlin 扩展组成,旨在方便开发人员在使用 Kotlin 语言开发 Android 应用程序时删除样板代码并编写简洁的代码。
  • \n
  • Multidex:Dex 是在 Android 虚拟机(称为 Dalvik)上运行的可执行文件的格式。Multidex 组件还提供对应用程序的集合 dex 文件的支持。
  • \n
  • 测试:包括用于运行时 UI 测试的 Espresso UI 测试框架和用于 Android 应用程序单元测试的 AndroidJUnitRunner。
  • \n
\n
\n

架构组件有助于构建健壮的应用程序。它不支持任何特定的架构模式,但建议将关注点和 UI 控制与模型明确分离,开发人员可以通过它避免与活动生命周期相关的问题。

\n
\n

架构组件是:

\n
    \n
  • Room - Room 组件充当 SQLite 对象映射库,克服了使用 SQLite 带来的挑战,例如在编译时检查查询、编写样板代码。\nRoom 将查询直接转换为对象,在编译时检查查询中的错误,并且还能够持久保存 Java POJO。子组件是:

    \n

    1.实体

    \n

    2.数据访问对象

    \n

    3.数据库

    \n
  • \n
  • WorkManager - 管理 Android 中的后台任务,这些任务是可延迟的(可以稍后运行并且仍然有用)以及有保证的(即使设备重新启动也运行)。 \n它提供向后兼容性,可以调度和链接任务,用户可以跟踪任务/状态。

    \n
  • \n
  • LifeCycles - androidx.lifecycle包组件执行操作以响应另一个组件(例如活动和片段)生命周期状态的更改。这些组件可帮助您生成组织更好、重量更轻、更易于维护的代码。这有助于创建有组织的应用程序组件、轻松测试和维护组件、减少执行任务的代码要求。

    \n
  • \n
  • ViewModel -以生命周期意识的方式管理 UI 相关数据。它有助于配置更改期间的数据管理,减少 UI 错误和崩溃。

    \n
  • \n
  • LiveData - Livedata 通知 UI 数据中的任何适当更改。如果观察者\xe2\x80\x99s 生命周期状态被破坏,LiveData 能够将其删除,从而避免内存泄漏。\n它会删除已停止或已破坏的活动,从而减少应用程序崩溃的可能性。

    \n
  • \n
  • 导航组件- 导航组件获得了其他架构组件的所有优点,例如 Lifecycle 和 ViewModel。它有助于实现基本的导航样式(例如简单的按钮单击)到复杂的导航模式(例如应用程序栏和导航抽屉)。此外,它还支持深层链接和帮助器,从而可以将该组件与导航抽屉和底部导航连接。它通过动画可视化简化过渡,支持深度链接,处理片段事务,支持常见以及复杂的导航模式

    \n
  • \n
  • 分页- 该库提供了以谨慎的方式缓慢加载应用程序数据的功能。易于与Recycler View集成以显示大数据集,兼容LiveData和RxJava以更新UI数据,谨慎加载数据。

    \n
  • \n
  • 数据绑定- 数据绑定库是一个支持库,提供将活动/片段中的 UI 组件绑定到应用程序的数据源的功能。\n通过删除活动中调用的 UI 框架,使代码更简单且易于维护。它还允许类和方法观察数据的变化,并允许创建对象并填充它作为可观察的集合。

    \n
  • \n
\n
\n

行为组件 - 行为组件有助于与标准 Android 服务(如通知、权限、共享、助手)集成。

\n
\n

行为组件是:

\n
    \n
  • 下载管理器:DownloadManager 是 Android 中的一项系统服务,有助于在后台线程中下载大文件。它在后台安排和管理大型下载,并支持自动重试。
  • \n
  • 媒体和播放:Jetpack 为 Android 多媒体框架提供了向后兼容的 API。\n所包含的媒体库可帮助开发人员将音频、视频和图像文件集成到应用程序中。向后兼容的 API 用于媒体播放和路由(包括 Google Cast)。
  • \n
  • 通知:提供向后兼容的通知 API,支持 Wear 和 Auto。
  • \n
  • Permissions:用于在应用程序中检查和请求权限的兼容性 API。
  • \n
  • 首选项:创建交互式设置屏幕供用户配置。
  • \n
  • 共享:提供适合app\xe2\x80\x99s操作栏的共享操作。ShareActionProvider类用于执行共享内容和信息的任务。
  • \n
  • Slices:创建灵活的 UI 元素,可以在应用程序外部显示应用程序数据,并且可以一直扩展到 Android 4.4。
  • \n
\n
\n

UI 组件 - UI 组件提供小部件和帮助程序,旨在改善用户与 Android 应用程序的交互。

\n
\n

用户界面组件有:

\n
    \n
  • 动画和过渡:Jetpack 提供 API 来设置可用于 Android 应用程序的不同类型的动画。该框架赋予\n移动小部件以及在应用程序中使用动画和过渡在屏幕之间切换的能力。

    \n
  • \n
  • Auto:用于开发 Android Auto 应用的组件。可以在 Android Auto 上构建、测试和分发以下类别的应用程序:导航应用、消息应用、媒体应用。

    \n
  • \n
  • 表情符号:在旧平台上启用更新的表情符号字体。Google 发布了名为 EmojiCompat 的新库,以处理表情符号字符并使用可下载字体支持。该库的向后兼容性最高可达 Android 4.4(API 级别 19)。

    \n
  • \n
  • 片段:表示用户界面的行为或部分,用于动态且灵活的 UI 设计(并减少样板\n布局和代码)。

    \n
  • \n
  • 布局:用于创建和设计用户界面的结构。

    \n
  • \n
  • 调色板:用于设计布局主题并将自定义颜色应用于应用程序的元素。

    \n
  • \n
  • TV:开发 Android TV 应用程序的组件。

    \n
  • \n
  • Wear:为帮助开发 Wear 应用程序而创建的组件。

    \n
  • \n
\n