几乎所有android应用程序都使用了Android支持库,以克服不同Android OS版本和设备之间的兼容性问题。这些库还方便用户在应用程序中添加各种更新的窗口小部件。随着时间的流逝,这些库会根据最新的android版本进行更新。问题从这里开始,为这些支持库提供的名称应该表明它们支持哪个Android版本,例如com.android.support:support-v7和com.android.support:support-v13。但是,最后编写版本号并不能满足其目的,因为随着库的发展,Android API的最低版本级别提高到了14。开发人员还发现这些名称令人困惑,因为人们不能说某个特定类中包括了所有类。仅通过查看其名称即可。
意识到开发人员面临的这些挑战后,Google于2018年推出了Android Jetpack 。现有的支持库,android体系结构组件与附加的Android KTX库一起作为单个模块化实体组合在一起,被称为Android Jetpack。因此,Jetpack仅仅是一套软件组件,库,工具和指南,可帮助开发出色的Android应用程序。
Android Jetpack的主要优点
- 通过其组件形成推荐的应用程序架构方法
- 消除样板代码
- 简化复杂的任务
- 提供向后兼容性,因为支持之类的库已从Android API取消捆绑,并重新打包为androidx。*包
- Kotlin集成的内置生产力功能
Android Jetpack组件
Android Jetpack的软件组件分为四类:
- 基础组件
- 建筑构件
- 行为成分
- UI组件
这些所有组件均包含大量库,这些库以共同协作的方式构建并构成了强大的移动应用程序。下面给出每个组件的简要说明。
基础组件
android应用程序的核心系统组件位于Jetpack的“基础”区域中。语言支持和测试库的Kotlin扩展也包含在其中。此外,此组件中存在的库提供了向后兼容性。以下是所有基础组件的列表:
- AppCompat: v7库的所有组件(如RecyclerView,GridLayout,CardView等)都包含在AppCompat库中。此外,它还包含实质性的设计用户界面实现支持,这有助于降低较旧版本的android。
- Android KTX:此库包含一组Kotlin扩展,旨在当开发人员使用Kotlin语言制作应用程序时编写简洁的代码并使开发过程更顺畅。
- Multidex:一旦应用程序中所有类的方法数量超过65,536,Android的Multidexing功能就将发挥至关重要的作用。系统拆分这些类,并将其zip文件称为.dex file 。 Multidex组件为应用程序的集合dex文件提供支持。
- 测试:这部分包括用于运行时UI测试的Espresso UI测试框架和用于Android中单元测试的AndroidJUnitRunner 。
建筑构件
Android Jetpack的此组件包含八个库和工具,用于构建健壮且可维护的应用程序。此组件还有助于正确管理应用程序使用的数据以及设计应用程序体系结构模式。以下是该区域的组成部分:
- 数据绑定:提供将应用程序数据与XML布局绑定的功能。数据绑定对于动态更新View的数据非常有帮助。
- 生命周期:此库管理应用程序中的活动和片段生命周期,还有助于侦听其他组件的生命周期事件。
- LiveData:当数据库发生更改时,通知视图并自动更新UI。
- 导航:包含应用内导航所需的所有资源。借助Android Studio中的内置导航查看器,开发人员可以直观地设计活动和/或片段之间的导航。
- 分页:从数据源逐步将数据加载到应用程序的RecyclerView中。
- Room:此库简化了在android应用程序中访问SQLite数据库的过程。会议室还对编写用于执行查询的SQL代码执行编译时检查。
- ViewModel:以生命周期感知的方式促进与UI相关的数据的管理。此外,它还可以在任何配置更改(例如设备旋转)期间重建“活动”或“片段”。
- WorkManager:解决了在不同版本的Android中编写用于管理后台任务的不同代码的问题。
行为成分
android jetpack的这一部分涵盖了那些库,这些库使用户能够通过UI与应用程序进行交互。该组件集成了标准的Android服务,例如通知,下载,权限,共享,助手等。行为组件如下:
- DownloadManager:帮助在后台下载文件。它可以自我管理并解决下载时发生的连接丢失,重试和系统重新启动等问题。
- 媒体和播放:此库包含MediaPlayer和AudioManager类。此外,它为媒体播放提供了向后兼容的API。
- 权限:负责提供检查和请求应用内权限所需的兼容API。
- 通知:它提供通知中使用的API,并且本质上是向后兼容的。
- 共享:促进与其他应用程序共享和接收信息/内容。它为应用程序的操作栏提供了合适的共享操作,以便共享数据。
- 分片:帮助创建本质上灵活的UI元素,并允许在应用程序外部共享数据。
UI组件
它包括小部件,动画,调色板等,以改善用户体验。它还提供了可在应用程序中使用的最新表情符号字体。以下是此组件中包含的库:
- 动画和过渡:包含API,可在移动小部件时设置屏幕和动画之间的过渡,并可视化布局中的更新。
- 自动:它包含用于开发Android自动应用程序的组件。这些应用程序可以使用台式机头单元(DHU)在汽车屏幕上进行测试。
- 表情符号:各种表情符号字体和字符均由EmojiCompat处理。该库使应用程序保持最新的表情符号。
- 片段:这是片段支持类,其中包括可组合UI的单元,例如ListFragment,DialogFragment和PreferenceFragmentCompat。
- 布局:包含有关声明各种布局的信息,例如LinearLayout,RelativeLayout,ContraintLayout。
- Palette:此库允许开发人员创建调色板,并借助Palette.Builder类选择不同的颜色。此外,它还有助于从主题和图像中提取颜色,以使UI与屏幕上显示的图像兼容。
- 电视:它包含用于开发Android TV应用程序的组件。
- 穿戴式:包含用于为可穿戴Android设备(如智能手表)开发应用程序的库和类。
Android Jetpack中有什么新功能
- WorkManager:一个功能强大的新库,提供现代API,用于管理需要保证执行的后台作业,而无需为不同版本的Android编写不同的代码。
- 导航:用于构建应用内用户界面以及直观地查看和管理导航属性的框架。
- 分页:快速有效地加载和呈现大数据集的方法,并且可以在RecyclerView中进行无限滚动。开发人员可以明确定义如何加载内容。
- 切片:一项非常新的功能,可以在Google助手的搜索结果中显示应用的用户界面。
- Android KTX(Kotlin扩展):将多行Kotlin代码转换为一行,从而提高了使用Kotlin语言开发人员的工作效率。