Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。
Jetpack Compose
用于构建原生界面的新式工具包,让您可以简化并加快 Android 上的界面开发。

为何使用 Android Jetpack?

Android Jetpack 库采用最新的设计方法构建,具有向后兼容性,可以减少崩溃和内存泄漏。
Android Jetpack 可以管理各种繁琐的活动(如后台任务、导航和生命周期管理),以便您可以专注于打造出色的应用。
这些库可在各种 Android 版本和设备中以一致的方式运作,助您降低复杂性。

* 热门和常用的库排在前面

activity *访问基于 Activity 构建的可组合 API。
appcompat *允许在平台的旧版 API 上访问新 API(很多使用 Material Design)。
appsearch *为用户构建自定义应用内搜索功能。
camera *构建移动相机应用。
compose *使用描述界面形状和数据依赖项的可组合函数,以编程方式定义界面。
databinding *使用声明性格式将布局中的界面组件绑定到应用中的数据源。
fragment *将您的应用细分为在一个 Activity 中托管的多个独立屏幕。
hilt *扩展了 Dagger Hilt 的功能,以实现 androidx 库中某些类的依赖项注入。
lifecycle *构建生命周期感知型组件,这些组件可以根据 activity 或 fragment 的当前生命周期状态调整行为。
Material Design 组件* 适用于 Android 的模块化、可自定义 Material Design 界面组件。
navigation *构建和组织应用内界面,处理深层链接以及在屏幕之间导航。
paging *在页面中加载数据,并在 RecyclerView 中呈现。
room *创建、存储和管理由 SQLite 数据库支持的持久性数据。
test *在 Android 中进行测试。
work *调度和执行可延期且基于约束条件的后台任务。
ads获取广告 ID(无论是否通过 Play 服务)。
annotation公开元数据,帮助工具开发者和其他开发者了解您的应用代码。
arch.core其他架构依赖项的帮助程序,包括可与 LiveData 配合使用的 JUnit 测试规则。
asynclayoutinflater异步膨胀布局以避免界面出现卡顿。
autofill通过扩展提示,提高自动填充的准确性。
benchmark在 Android Studio 中准确评估代码的性能。
biometric通过生物识别特征或设备凭据进行身份验证,以及执行加密操作。
bluetooth使用向后兼容的 API 使用 Android 平台的蓝牙功能。
browser在用户的默认浏览器中显示网页。
camera.media3TODO
camera.viewfinder适用于相机的独立可组合项和基于 View 的取景器”
car-app构建适用于 Android Auto 和 Android Automotive OS 的模板化应用。
cardview用圆角和阴影实现 Material Design 卡片模式。
collection降低现有和新的小型集合对内存的影响。
compose.animation在 Jetpack Compose 应用中构建动画,丰富用户体验。
compose.compiler借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。
compose.foundation使用现成可用的构建块编写 Jetpack Compose 应用,还可扩展 Foundation 以构建您自己的设计系统元素。
compose.material使用现成可用的 Material Design 组件构建 Jetpack Compose UI。这是更高层级的 Compose 入口点,旨在提供与 www.material.io 上描述的组件一致的组件。
compose.material3使用 Material Design 3(新一代 Material Design)组件构建 Jetpack Compose UI。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。
compose.material3.adaptive使用 Material 3 自适应库创建自适应界面,这些界面会根据当前的窗口配置(例如窗口大小类别或设备折叠状态)自动调整自身。该库提供了默认的框架实现和必要的构建块可组合项,以便您创建自己的自定义体验。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备互动所需的 Compose UI 的基本组件,包括布局、绘图和输入。
concurrent使用协程将任务移出主线程,并充分利用 ListenableFuture。
constraintlayout使用相对定位灵活地确定 widget 的位置和大小。
contentpager在后台线程中加载 ContentProvider 数据并进行分页。
coordinatorlayout定位顶层应用 widget,例如 AppBarLayout 和 FloatingActionButton。
core针对最新的平台功能和 API 调整应用,同时还支持旧设备。
core.uwb在受支持的设备上实现 UWB(超宽带)。
credentials 此库可提供对用户凭据的统一访问权限。其中包括密码、通行密钥和联合凭据。该库应该用于提供安全顺畅的登录体验。
credentials.registry为了解决这些问题,我们将添加一种新的注册机制,让应用能够以可保护隐私的方式提供数字凭据。概括来讲,提供程序应用将向 Credential Manager 预注册所有候选数字凭据;当 Credential Manager 收到针对特定数字凭据的应用请求时,它将在沙盒中运行凭据匹配和用户选择器界面。
cursoradapter向 ListView widget 提供光标数据。
customview实现自定义视图。
datastore以异步、一致的事务方式存储数据,克服了 SharedPreferences 的一些缺点
documentfile查看文件文档。
draganddrop接受来自其他应用或应用内的拖放数据,并显示一致的拖放目标可视效果。
drawerlayout实现 Material Design 抽屉式导航栏 widget。
dynamicanimation使用基于物理特性的动画 API 制作流畅的动画。
emoji在当前设备和版本更低的设备上显示表情符号。
emoji2在当前设备和版本更低的设备上显示表情符号。
enterprise创建企业专用应用。
exifinterface读取和写入图片文件 EXIF 标记。
games在您的应用中以原生方式使用 Android Game SDK 来执行复杂的游戏任务,例如帧同步。
glance使用 Jetpack Compose 样式的 API 构建远程 surface 的布局。
graphics利用多个 Android 平台版本中的图形工具
gridlayout实现网格布局。
health通过平台无关的方式构建高性能健康应用。
health.connect允许开发者读取或写入用户的健康与健身记录。
heifwriter使用 Android 设备上可用的编解码器,以 HEIF 格式对图像或图像集进行编码。
ink激发开发出卓越的触控笔应用。降低开发者进入高性能、美观的手写体验的门槛。
input通过预测未来的 MotionEvent 缩短输入互动的延迟时间
interpolator在旧版平台上使用动画插值器。
javascriptengine启用您的 Android 应用以评估 JavaScript。
jetifier一款独立工具,可将某个库中对已废弃支持库的依赖项迁移到等效的 AndroidX 依赖项。
leanback请改用 Compose for TV,而不是此工件。
legacy此制品及其类已废弃。从 Android 8 开始,后台检查限制使此类无法再发挥作用。
lintlint 检查以验证 Gradle API 的使用情况
loader加载配置更改后继续存在的界面数据。
localbroadcastmanager此制品及其类已废弃。请改用 LiveData 或响应式流。
media与其他应用共享媒体内容和控件。已被 media3 取代。
media2与其他应用共享媒体内容和控件。
media3 *适用于媒体用例的支持库。
mediarouter利用通用界面实现在远程接收端设备上显示和播放媒体内容。
multidex在搭载 Android 5 之前版本的设备上部署包含多个 dex 文件的应用。
metrics跟踪和报告应用的各种运行时指标
palette从图片中提取具有代表性的调色板。
pdf用于在应用中添加 PDF 查看功能的库。
percentlayout此制品及其类已废弃。请改用 ConstraintLayout 和关联布局。
preference无需与设备存储空间交互,也不需要管理界面,便能构建交互式设置画面。
print通过您的应用打印照片、文档、其他图形及图片。
privacysandbox.activityTODO
privacysandbox.ads此库支持与可保护隐私的 API(Android Privacy Sandbox 的一部分)集成。
privacysandbox.pluginsAndroid Privacy Sandbox Sdk 库 Gradle 插件
privacysandbox.sdkruntime此库为 SdkRuntime 感知型使用方提供组件
privacysandbox.tools用于在 Android 中利用 Privacy Sandbox 功能的库
privacysandbox.uiTODO
profileinstaller让库能够提前预填充要由 ART 读取的编译轨迹。
recommendation将内容推送到 Android TV 启动器的主屏幕。
recyclerview在您的界面中显示大量数据,同时最大限度减少内存用量。
remotecallback创建一个封装容器,以便开发者更轻松地提供 PendingIntent。
resourceinspection在 Android Studio 的实时布局检查器中显示自定义视图的属性。
savedstate编写可插入组件,这些组件会在进程终止时保存界面状态,并在进程重启时恢复界面状态。
security安全地管理密钥并对文件和 sharedpreferences 进行加密。
sharetarget提供向后兼容性,可以将快捷方式用作直接共享目标。
slice在应用外显示模板化界面元素。
slidingpanelayout实现滑动窗格界面模式。
startup实现一种在应用启动时初始化组件的简单而高效的方法。
sqlite使用本地 SQLite 数据库。如果可能,请改用 Room。
swiperefreshlayout实现下拉刷新的界面模式。
test.uiautomator适用于跨应用功能界面测试的框架
textclassifier识别文本中的对话、链接、选定内容和其他类似构造内容。
tracing将跟踪事件写入系统跟踪缓冲区。
transition使用开始和结束布局为界面中的动作添加动画效果。
tv为开发者提供 Compose 和 Material Design 功能,以便编写 TV 应用
tvprovider提供 Android TV 频道。
xr.arcore借助感知功能将数字内容带入现实世界。
xr.compose以声明方式构建可充分利用 Android XR 空间功能的空间界面布局。
xr.compose.material3使用可适应 XR 的 Material 组件和布局进行构建
xr.runtime使用我们的原生运行时启动自定义 AR 或 3D 会话。
xr.scenecore使用 3D 内容构建和操控 Android XR 场景图。
vectordrawable渲染矢量图形。
versionedparcelable提供稳定且紧凑的二进制序列化格式,该格式可跨进程传递或安全保留。
viewpager以可滑动的格式显示视图或 Fragment。如果可能,请改用 viewpager2。
viewpager2以可滑动的格式显示视图或 Fragment。
wear打造适用于 Wear OS by Google 谷歌智能手表的应用。
wear.compose编写适用于穿戴式设备的 Jetpack Compose 应用,提供相关功能来支持穿戴式设备以及该类设备专属的尺寸、形状和导航手势。
wear.protolayout此库允许定义一组将在远程 Surface 上呈现/评估的界面布局和非界面表达式。
wear.tiles打造适用于 Wear OS by Google 谷歌智能手表的应用。
wear.watchface打造适用于 Wear OS by Google 谷歌智能手表的应用。
webkit在 Android 5 及更高版本上使用新式 WebView API。
window帮助支持不同的设备外形规格,例如可折叠设备。
window.extensions.coreWindow Manager 库扩展的核心 API

了解如何使用 Jetpack

在“Android 之 Compose 开发基础”课程中学习基本的 Jetpack 库,并减少应用中的样板代码
亲身体验可帮助您简化数据层的三个 Jetpack 库:LiveData、ViewModel 和 Room
了解如何在生产级应用中组合使用最热门的各 Jetpack 库

资讯和视频