📜  Android Jetpack 简介

📅  最后修改于: 2021-10-19 04:57:23             🧑  作者: Mango

Android 支持库几乎用于所有 Android 应用程序,以克服不同 Android 操作系统版本和设备之间的兼容性问题。这些库还方便用户在应用程序中添加各种更新的小部件。随着时间的推移,这些库会根据最新的 android 版本进行更新。问题从这里开始,这些支持库的名称应该表明它们支持哪个 Android 版本,例如,com.android.support:support-v7 和 com.android.support:support-v13。然而,写在最后的版本号并没有达到它的目的,因为随着库的发展,Android API 级别的最低版本增加到 14。开发人员也发现这些名称令人困惑,因为人们不能说所有类都包含在特定的图书馆只看它的名字。

在意识到开发者面临的这些挑战后,谷歌于 2018 年推出了Android Jetpack 。 将现有的 Support 库、Android 架构组件与添加的Android KTX 库组合在一起,作为一个单一的模块化实体,被称为 Android Jetpack。因此,Jetpack 只不过是一组软件组件、库、工具和指南,可帮助开发出色的 Android 应用程序。

Android Jetpack 的主要优势

  • 通过其组件形成应用程序架构的推荐方式
  • 消除样板代码
  • 简化复杂的任务
  • 提供向后兼容性,因为支持等库从 Android API 中分离出来并重新打包到androidx.* 包
  • Kotlin 集成的内置生产力功能

Android Jetpack 组件

Android Jetpack 组件

Android Jetpack 的软件组件分为 4 类:

  1. 基础组件
  2. 架构组件
  3. 行为组件
  4. 用户界面组件

这些所有组件都包含大量库,这些库的构建方式可以协同工作并制作强大的移动应用程序。下面给出每个组件的简要说明。

基础组件

Android 应用程序的核心系统组件位于 Jetpack 的 Foundation 区域。语言支持和测试库的 Kotlin 扩展也包含在其中。此外,此组件中存在的库提供了向后兼容性。以下是所有基础组件的列表:

  • AppCompat: v7 库的所有组件,如 RecyclerView、GridLayout、CardView 等都包含在 AppCompat 库中。此外,它还包含材料设计用户界面实现支持,有助于降低旧版本的 android。
  • Android KTX:该库包含一组 Kotlin 扩展,旨在编写简洁的代码并使开发人员使用 Kotlin 语言制作应用程序时的开发过程顺畅。
  • Multidex:一旦应用程序中所有类的方法数量超过 65,536 个标记,Android 的 Multidexing 功能就会发挥至关重要的作用。系统拆分这些类并将它们的 zip 文件称为.dex 文件。 Multidex 组件为应用程序的集体 dex 文件提供支持。
  • 测试:这部分包括用于运行时 UI 测试的Espresso UI 测试框架和用于 Android 中单元测试的AndroidJUnitRunner

架构组件

Android Jetpack 的这个组件由八个库和工具组成,负责构建健壮且可维护的应用程序。该组件还有助于正确管理应用程序使用的数据以及设计应用程序架构模式。以下是该区域的组成部分:

  • 数据绑定:提供将应用程序数据与 XML 布局绑定的工具。 Data Binding 在动态更新 View 的数据方面非常有帮助。
  • Lifecycles:该库管理应用程序中的活动和片段生命周期,还有助于侦听其他组件的生命周期事件。
  • LiveData:当数据库发生变化时通知View并自动更新UI。  
  • 导航:包含应用内导航所需的所有资源。借助 Android Studio 中内置的导航查看器,开发人员可以直观地设计活动和/或片段之间的导航。
  • Paging:在应用程序的 RecyclerView 中从数据源逐步加载数据。
  • Room:这个库简化了在 android 应用程序中访问 SQLite 数据库的过程。 Room 还对为执行查询而编写的 SQL 代码执行编译时检查。
  • ViewModel:以生命周期感知的方式促进与 UI 相关的数据的管理。此外,它还在任何配置更改(如设备旋转)期间重新构建 Activity 或 Fragment。
  • WorkManager:解决了在不同版本的Android中管理后台任务编写不同代码的问题。

行为组件

android jetpack 的这一领域涵盖了那些使用户能够通过 UI 与应用程序交互的库。该组件集成了Android标准的通知、下载、权限、分享、助手等服务,行为组件如下:

  • DownloadManager:帮助在后台下载文件。它自行管理和解决下载过程中出现的连接丢失、重试和系统重启等问题。
  • 媒体和播放:这个库包括 MediaPlayer 和 AudioManager 类。此外,它还为媒体播放提供了向后兼容的 API。
  • 权限:负责提供检查和请求应用内权限所需的兼容 API。
  • 通知:它提供通知中使用的 API,并且本质上是向后兼容的。
  • 共享:促进与其他应用程序共享和接收信息/内容。它为应用程序的操作栏提供合适的共享操作以共享数据。
  • 切片:帮助创建本质上灵活的 UI 元素,并支持应用程序外的数据共享。

用户界面组件

它包括小部件、动画、调色板等,以改善用户体验。它还提供了要在应用程序中使用的最新表情符号字体。以下是此组件中包含的库:

  • 动画和过渡:包含 API,用于在移动小部件时设置屏幕和动画之间的过渡以及在布局中可视化更新。
  • Auto:它包括用于为 Android Auto 开发应用程序的组件。这些应用程序可以使用桌面主机 (DHU) 在汽车屏幕上进行测试。
  • 表情符号:各种表情符号字体和字符都由 EmojiCompat 处理。该库使应用程序使用最新的表情符号进行更新。
  • Fragment:Fragment支持类,包含ListFragment、DialogFragment、PreferenceFragmentCompat等可组合UI单元。
  • 布局:包含有关不同类型布局(如 LinearLayout、RelativeLayout、ContraintLayout)声明的信息。
  • Palette:这个库允许开发人员在 Palette.Builder 类的帮助下创建一个调色板并选择不同的颜色。此外,它有助于从主题和图像中提取颜色,使 UI 与屏幕上显示的图像兼容。
  • TV:它包括用于开发 Android TV 应用程序的组件。
  • Wear:包含用于开发可穿戴 Android 设备(如智能手表)应用程序的库和类。

Android Jetpack 中的新功能

  • WorkManager:一个强大的新库,提供现代 API 来管理需要保证执行的后台作业,而无需为不同版本的 Android 编写不同的代码。
  • 导航:用于构建应用内 UI 以及直观地查看和管理导航属性的框架。
  • 分页:在 RecyclerView 中通过无限滚动快速加载和呈现大型数据集的简单有效方法。开发人员可以明确定义如何加载内容。
  • 切片:一项非常新的功能,可以在 Google 助理的搜索结果中显示应用程序的 UI。
  • Android KTX(Kotlin 扩展):将多行 Kotlin 代码转换为一行,提高使用 Kotlin 语言的开发人员的生产力。