Skip to content

jetpack

简介

Android Jetpack 是一组 Android 组件、工具和指南的集合,用于加速 Android 应用程序的开发过程。Jetpack 提供了一套标准的 API,简化了 Android 开发中一些常见的编程模式,例如了解 Activity 和 Fragment 生命周期、处理异步任务和数据持久化等。Jetpack 还提供了许多架构组件,协助开发人员设计和管理 Android 应用程序的 UI、控制应用程序行为、构建健壮的应用程序架构以及进行测试和调试。Jetpack 在大多数 Android 平台(从 Android 4.0 (API 级别 14) 到最新版本)上都能运行。Jetpack 的主要目标是提高开发人员的生产力,使开发过程更易于管理,并使应用程序更加稳定、易于测试和扩展。组件Git仓库地址https://github.com/androidx/androidx

Jetpack 各类组件库

Android Jetpack 是一套组件集合,旨在帮助 Android 开发者更轻松、更快速地开发高质量的应用程序。包括以下四大组件:

核心库

activity.* activity相关

这个组件库包含了与Activity相关的类,如Activity、FragmentActivity、AppCompatActivity等,可以帮助开发者更轻松地创建和管理Activity及其生命周期。

arch.core 架构组件辅助包

这个组件库提供了一些辅助类,用于帮助开发者更好地设计和实现应用程序的架构

annotation 注解,提升代码可读性

这个组件库提供了一些注解,用于提升代码的可读性和可维护性。

collection 为优化内存而设计的数据结构

这个组件库包含了一些专门为优化内存而设计的数据结构,如SparseArray、ArrayMap等,可以帮助开发者更高效地管理内存。

core 核心库

这个组件库是Android Jetpack的核心库,针对最新的特性和API向下兼容

Customview

这个组件库提供了一些辅助类,用于帮助开发者更轻松地创建自定义View.

fragment * Fragment 工具包

这个组件库包含了与Fragment相关的类,如Fragment、FragmentTransaction等,可以帮助开发者更轻松地管理Fragment及其生命周期。

appcompat * 向下兼容包

这个组件库是向下兼容的支持库,可以帮助开发者在不同Android版本的设备上使用最新的特性和API,如Toolbar、DrawerLayout等,提高应用程序的兼容性和用户体验。

Architecture Components 架构组件

databinding * 在xml 文件中绑定 View 和 Model

这个组件库允许你在XML布局文件中绑定View和Model,从而简化了代码,提高了开发效率。

hilt *

Hilt是一个基于Dagger的Android依赖注入框架,它可以帮助开发者更方便地管理依赖注入,从而提高应用的可维护性和可测试性。

room *

Room是一个用于在Android应用中使用SQLite数据库的库,它提供了一些简单易用的API,从而简化了数据库的操作。

lifecycle * 生命周期处理组件

Lifecycle是一个用于帮助开发者更好地管理Android应用生命周期的库,它提供了一些辅助类和接口,从而简化了代码的编写。

Navigation是一个用于实现单Activity多Fragment架构的库,它提供了一些辅助类和接口,从而简化了Fragment之间的导航。

paging * RecycleView 的分页加载器

Paging是一个用于实现RecycleView分页加载的库,它提供了一些辅助类和接口,从而简化了分页加载的实现。

startup 自动处理依赖初始化

Startup是一个用于自动处理依赖初始化的库,它可以帮助开发者更方便地管理应用的依赖关系。

work *

WorkManager包是一个用于后台任务调度的库,它提供了一些辅助类和接口,从而简化了后台任务的管理。

datastore

Datastore是一个用于替代SharedPreferences的库,它提供了一些更加安全和高效的API,从而简化了数据的存储和访问。 这个库支持异步、更加安全。

savedstate

SavedState是一个用于保存轻量级数据的库,用于当系统进程被杀死再恢复时,保证用户数据不丢失。

UI Components UI组件

browser

用于在应用内部显示浏览器Tab的组件,使得用户可以在应用内部直接浏览网页,而不必跳转到外部浏览器。

drawerlayout 抽屉布局

一种侧滑菜单布局,可用于在应用中实现侧滑菜单。

interpolator 动画插值器

动画插值器,可用于控制动画的速度和变化。在AS中有对应的插件,配置较简单。

compose*(7个依赖库)

Jetpack Compose是一种声明式UI框架,可用于构建Android应用程序的用户界面。

dynamicanimation

基于物理学的动画库,可用于创建更加逼真的动画效果。

palette 从图像中获得调色盘

从图像中提取颜色信息,可用于动态设置应用程序的颜色主题。

constraintlayout 约束布局

一种灵活的布局,可用于在应用中创建复杂的UI界面。

emoji Emoji 支持库

一个支持表情符号的库,可用于在低版本Android系统上正确显示表情符号。

recyclerview 可复用的滑动列表

一种可重用的滚动列表视图,可用于动态显示大量数据。

coordinatorlayout

顶层布局继承自 FrameLayout,可以实现子 View 之间的联动交互效果。

swiperefreshlayout 下拉刷新布局

下拉刷新布局,可用于在用户下拉屏幕时刷新应用程序内容。

transition Layout 之间过渡的动画

一种布局之间的过渡动画,可用于实现更加生动的UI过渡效果。

vectordrawable 矢量图渲染

一种可缩放的矢量图形,可用于在应用程序中显示高质量的图形。

viewpager2 分页布局

一种分页布局,可用于在应用中显示多页内容。

webkit

一个浏览器引擎,可用于在应用程序中显示Web内容。

Material Design Components *

一组可用于构建Material设计风格应用程序的UI组件。

特殊业务组件

ads 于在应用中嵌入广告的组件库。

autofill 于自动填充表单和其他用户输入的组件库。

biometric 用于生物识别技术(如指纹、面部识别)的组件库。

camera 用于访问设备相机和拍照功能的组件库。

documentfile 用于访问文档和文件的组件库。

exifinterface 用于读取和修改JPEG图像文件的元数据(Exif)的组件库。

media2 用于处理音频和视频媒体的组件库。

heifwriter 用于处理高效图像文件格式(HEIF)的组件库。

preference 用于管理应用程序的偏好设置的组件库。

mediarouter 用于将媒体流路由到不同的设备的组件库。

multidex 用于支持多个DEX文件的组件库。

sharetarget 用于在应用中实现共享功能的组件库。

security 用于提供数据加密和应用程序保护的组件库。

slice 用于提供动态UI片段的组件库。

textclassifier 用于自动分类文本的组件库。 window 用于管理应用程序窗口的组件库。

用不着组件

car 车载应用相关

contentpager 为使用 ContentResolver 时提供后台的分页数据功能

enterprise 企业应用支持

games 游戏相关

jetifer 将旧的 support 依赖转化为 AndroidX

leanback Android TV 相关

print 打印相关帮助类

recommendation Android TV 相关

remotecallback Pendingintent 封装实现

slidingpanelayout 滑动布局

tracing 事件跟踪相关

tvprovider Android TV 相关

versionedparcelable 序列化

wear 手表相关

concurrent 帮助实现 ListenableFuture 和 Kotlin 协程之间的转换,ListenableFuture 是 Guava 里处理并发的一个类

弃用组件

asynclayoutinflater 异步生成UI

Cursoradapter 是ListView 的游标辅助类

gridlayout 网格布局

legacy 不知道干啥的,反正弃用了

loader 当配置改变时恢复UI的数据

localbroadcastmanager 本地广播

media (使用 media 2替代) 媒体资源控制器 (viewController + Session)

sqlite (使用room替代) Android 原生数据库

percentlayout (使用coordinatorlayout替代) 百分比布局

viewpager (使用 viewpager2替代) 可滑动的分页布局

cardview (MaterialCardView 替代) 最早版本的cardview,不推荐使用

Last updated: