Android Jetpack
Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。
Jetpack 库 浏览所有库
* 热门和常用的库排在前面
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.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.runtime | Compose 编程模型和状态管理的基本构建块,以及 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 开始,后台检查限制使此类无法再发挥作用。 |
lint | lint 检查以验证 Gradle API 的使用情况 |
loader | 加载配置更改后继续存在的界面数据。 |
localbroadcastmanager | 此制品及其类已废弃。请改用 LiveData 或响应式流。 |
media | 与其他应用共享媒体内容和控件。已被 media3 取代。 |
media2 | 与其他应用共享媒体内容和控件。 |
media3 * | 适用于媒体用例的支持库。 |
mediarouter | 利用通用界面实现在远程接收端设备上显示和播放媒体内容。 |
multidex | 在搭载 Android 5 之前版本的设备上部署包含多个 dex 文件的应用。 |
metrics | 跟踪和报告应用的各种运行时指标 |
palette | 从图片中提取具有代表性的调色板。 |
用于在应用中添加 PDF 查看功能的库。 | |
percentlayout | 此制品及其类已废弃。请改用 ConstraintLayout 和关联布局。 |
preference | 无需与设备存储空间交互,也不需要管理界面,便能构建交互式设置画面。 |
通过您的应用打印照片、文档、其他图形及图片。 | |
privacysandbox.activity | TODO |
privacysandbox.ads | 此库支持与可保护隐私的 API(Android Privacy Sandbox 的一部分)集成。 |
privacysandbox.plugins | Android Privacy Sandbox Sdk 库 Gradle 插件 |
privacysandbox.sdkruntime | 此库为 SdkRuntime 感知型使用方提供组件 |
privacysandbox.tools | 用于在 Android 中利用 Privacy Sandbox 功能的库 |
privacysandbox.ui | TODO |
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 频道。 |
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.core | Window Manager 库扩展的核心 API |
新变化
- Compose 2023 年 8 月
- Jetpack Compose 1.5.0 现已进入稳定阶段,并带来重大性能改进,包括重构了 `Clickable` 等高级修饰符,可将合成时间缩短 80%。2023 年 8 月,Compose 的内存分配还提升了 70%(尤其是在图形堆栈中),从而减少了 Compose 在设备上占用的内存
- Wear Compose 和 Tiles 1.2
- Wear Compose 和 Wear Tiles 都已转为稳定版,以进一步提升 wearOS 开发者的体验。这两者相辅相成,Wear Compose 可用于在 Wear 设备上构建复杂的应用界面,而 Wear 功能块可用于创建应用功能块。新的 Wear Compose 版本包含“可展开项”和“滑动即可展开”等新功能。Wear Tiles 版本现在支持 widget 动画和平台数据绑定(例如健康数据源)。
- Window 1.1
- 1.1 稳定了 activity 嵌入 API,让 WhatsApp、eBay 和 Temu 等应用能够发布大屏布局。该 API 具有丰富的功能,因为它支持开发者修改分屏行为、在运行时检查(和更改)分屏状态、实现水平分屏,以及在全窗口中启动模态窗口。
- 版本说明
- 如需了解详情,请参阅我们的版本说明。
了解如何使用 Jetpack
基础知识培训
在“Android 之 Compose 开发基础”课程中学习基本的 Jetpack 库,并减少应用中的样板代码
实践教程
亲身体验可帮助您简化数据层的三个 Jetpack 库:LiveData、ViewModel 和 Room
Sunflower 示例应用
了解如何在生产级应用中组合使用最热门的各 Jetpack 库