Jetpack 是一套库,可帮助开发者遵循最佳实践,减少样板代码,并编写可在 Android 的各个版本和设备上始终如一地运行的代码,以便开发者可以专注于他们关心的代码。
Jetpack Compose
一个用于构建原生 UI 的现代工具包,可帮助您简化和加速 Android 上的 UI 开发。

为什么要使用 Android Jetpack?

Android Jetpack 库围绕现代设计实践构建,可减少崩溃和内存泄漏,并内置向后兼容性。
Android Jetpack 管理诸如后台任务、导航和生命周期管理等繁琐活动,以便您可以专注于使您的应用变得出色的内容。
使用可在 Android 的各个版本和设备上始终如一地运行的库来降低复杂性。

* 常用库列在最前面

activity *访问构建在 Activity 之上的可组合 API。
appcompat *允许访问旧版平台上的新 API(许多使用 Material Design)。
appsearch *为您的用户构建自定义应用内搜索功能。
camera *构建移动相机应用。
compose *使用描述其形状和数据依赖关系的可组合函数以编程方式定义您的 UI。
databinding *使用声明性格式将布局中的 UI 组件绑定到应用中的数据源。
fragment *将您的应用分成多个独立的屏幕,这些屏幕托管在 Activity 中。
hilt *扩展 Dagger Hilt 的功能,以启用从 androidx 库注入某些类的依赖项。
lifecycle *构建生命周期感知组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为。
Material Design 组件 * Android 的模块化且可自定义的 Material Design UI 组件。
navigation *构建和构建您的应用内 UI,处理深层链接并在屏幕之间导航。
paging *分页加载数据,并在 RecyclerView 中显示。
room *创建、存储和管理以 SQLite 数据库为支持的持久性数据。
test *Android 中的测试。
work *计划和执行可延迟的、基于约束的后台任务。
ads获取带有或不带有 Play 服务的广告 ID。
annotation公开元数据,帮助工具和其他开发者了解您的应用代码。
arch.core其他 arch 依赖项的帮助程序,包括可与 LiveData 一起使用的 JUnit 测试规则。
asynclayoutinflater异步加载布局以避免 UI 中出现卡顿。
autofill通过扩展提示提高自动填充准确性。
benchmark在 Android Studio 中准确测量代码的性能。
biometric使用生物识别或设备凭据进行身份验证,并执行加密操作。
bluetooth使用向后兼容的 API 使用 Android 平台的蓝牙功能。
browser在用户的默认浏览器中显示网页。
camera.viewfinder基于 Camera 的独立的可组合和 View 查找器"
car-app为 Android Auto 和 Android Automotive OS 构建模板应用。
cardview使用圆角和投影实现 Material Design 卡片模式。
collection减少现有和新的小型集合的内存影响。
compose.animation

在 Jetpack Compose 应用程序中构建动画,以丰富用户体验。
compose.compiler转换 @Composable 函数,并使用 Kotlin 编译器插件启用优化。
compose.foundation使用现成的构建块编写 Jetpack Compose 应用程序,并扩展基础来构建您自己的设计系统组件。
compose.material使用现成的 Material Design 组件构建 Jetpack Compose UI。这是 Compose 的更高级别入口点,旨在提供与 www.material.io 上描述的组件相匹配的组件。
compose.material3使用 Material Design 3 组件构建 Jetpack Compose UI,这是 Material Design 的下一个发展阶段。Material 3 包括更新的主题和组件以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
compose.material3.adaptive使用 Material 3 自适应库创建自适应 UI,这些 UI 会根据当前窗口配置(如窗口大小类或设备姿势)自动调整自身。该库提供默认的脚手架实现和必要的构建块可组合项,以创建您自己的自定义体验。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备交互所需的 Compose UI 的基本组件,包括布局、绘图和输入。
concurrent使用协程将任务从主线程移开,并利用 ListenableFuture。
constraintlayout使用相对定位以灵活的方式定位和调整小部件的大小。
contentpager在后台线程中加载和分页 ContentProvider 数据。
coordinatorlayout定位顶级应用程序小部件,例如 AppBarLayout 和 FloatingActionButton。
core同时支持较旧的设备,并针对最新的平台功能和 API。
core.uwb在支持的设备上实现 UWB(超宽带)。
credentials此库提供对用户凭据的统一访问。这可能包括密码、密钥和联合凭据。此库应用于提供无缝且安全的登录体验。
credentials.registry为了解决这些问题,我们添加了一种新的注册机制,允许应用程序以保护隐私的方式提供数字凭据。从高级别来看,提供程序应用程序将预先将其所有候选数字凭据注册到凭据管理器;当凭据管理器收到应用程序对特定数字凭据的请求时,它将在沙箱中运行凭据匹配和用户选择器 UI。
cursoradapter将 Cursor 数据公开给 ListView 小部件。
customview实现自定义视图。
datastore异步、一致且事务地存储数据,克服 SharedPreferences 的一些缺点。
documentfile查看文件文档。
draganddrop接受来自其他应用程序或应用程序内部的拖放数据,并显示一致的放置目标提示。
drawerlayout实现 Material Design 抽屉小部件。
dynamicanimation使用基于物理的动画 API 创建流畅的动画。
emoji在当前和较旧的设备上显示表情符号。
emoji2在当前和较旧的设备上显示表情符号。
enterprise创建企业级应用程序。
exifinterface读取和写入图像文件 EXIF 标签。
games在您的应用程序中本地使用 Android 游戏 SDK 执行复杂的比赛任务,例如帧速率调节。
glance使用 Jetpack Compose 风格的 API 为远程界面构建布局。
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加载 UI 的数据,这些数据可在配置更改后继续存在。
localbroadcastmanager此工件及其类已弃用。请改用 LiveData 或反应式流。
media与其他应用程序共享媒体内容和控件。由 media2 取代。
media2与其他应用程序共享媒体内容和控件。
media3 *媒体用例的支持库。
mediarouter使用通用用户界面在远程接收设备上启用媒体显示和播放。
multidex在 Android 5 之前的设备上部署具有多个 dex 文件的应用程序。
metrics跟踪和报告应用程序的各种运行时指标。
palette从图像中提取代表性的调色板。
pdf一个在应用程序内部添加 pdf 查看功能的库。
percentlayout此工件及其类已弃用。请改用 ConstraintLayout 及其关联的布局。
preference构建交互式设置屏幕,而无需与设备存储交互或管理 UI。
print从您的应用程序打印照片、文档和其他图形和图像。
privacysandbox.activity待办
privacysandbox.ads此库支持与隐私保护 API 集成,这些 API 是 Android 上的隐私沙箱的一部分。
privacysandbox.pluginsAndroid 隐私沙箱 Sdk 库 Gradle 插件
privacysandbox.sdkruntime此库为 SdkRuntime 感知型使用者提供组件。
privacysandbox.tools一个利用 Android 中的隐私沙箱功能的库。
privacysandbox.ui待办
profileinstaller使库能够预先填充提前编译跟踪,以便 ART 读取。
recommendation将内容推广到 Android TV 启动器主屏幕。
recyclerview在您的 UI 中显示大量数据,同时最大限度地减少内存使用。
remotecallback创建一个包装器,使开发人员更容易提供 PendingIntent。
resourceinspection在 Android Studio 的实时布局检查器中显示自定义视图的属性。
savedstate编写可插拔组件,在进程死亡时保存 UI 状态,并在进程重新启动时恢复 UI 状态。
security安全地管理密钥并加密文件和共享首选项。
sharetarget为使用快捷方式作为直接共享目标提供向后兼容性。
slice在应用程序外部显示模板化 UI 元素。
slidingpanelayout实现滑动窗格 UI 模式。
startup实现一种简单、高效的方法来在应用程序启动时初始化组件。
sqlite使用本地 SQLite 数据库。如果可能,请改用 Room。
swiperefreshlayout实现滑动刷新 UI 模式。
test.uiautomator跨应用程序功能性 UI 测试框架。
textclassifier识别文本中的对话、链接、选择和其他类似结构。
tracing将跟踪事件写入系统跟踪缓冲区。
transition使用起始和结束布局在 UI 中动画化运动。
tv为开发人员提供 Compose 和 Material Design 功能,以便为电视编写应用程序。
tvprovider提供 Android 电视频道。
vectordrawable渲染矢量图形。
versionedparcelable提供一种稳定且紧凑的二进制序列化格式,可以安全地跨进程传递或持久化。
viewpager以可滑动格式显示 View 或 Fragment。如果可能,请改用 viewpager2。
viewpager2以可滑动格式显示 View 或 Fragment。
wear为 Google 智能手表创建 Wear OS 应用程序。
wear.compose通过提供支持可穿戴设备特定设备、尺寸、形状和导航手势的功能,为可穿戴设备编写 Jetpack Compose 应用程序。
wear.protolayout此库允许定义一组 UI 布局和非 UI 表达式,以便在远程界面上呈现/评估。
wear.tiles为 Google 智能手表创建 Wear OS 应用程序。
wear.watchface为 Google 智能手表创建 Wear OS 应用程序。
webkit在 Android 5 及更高版本上使用现代 WebView API。
window有助于支持不同的设备外形尺寸,例如折叠式设备。
window.extensions.core窗口管理器库扩展的核心 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 均已进入稳定版,以进一步增强 Wear OS 开发人员的体验。两者是互补的,其中 Wear Compose 可用于在可穿戴设备上构建复杂的应用程序屏幕,而 Wear Tiles 可用于创建应用程序磁贴。新的 Wear Compose 版本包含新的功能,例如可扩展项和滑动显示。Wear Tiles 版本现在还支持小部件动画和平台数据绑定(例如健康数据源)。
Window 1.1
1.1 使活动嵌入 API 稳定,允许 WhatsApp、eBay 和 Temu 等应用程序发布大屏幕布局。API 随着功能的丰富而增强,因为它使开发人员能够修改分屏行为,在运行时检查(并更改)分屏状态,实现水平分割,并在全窗口中启动模态。
发行说明
有关更多信息,请访问我们的发行说明。

学习使用 Jetpack

在 Android 基础知识 (Compose) 课程中学习必要的 Jetpack 库,并减少应用程序中的样板代码。
动手体验三个简化数据层的 Jetpack 库:LiveData、ViewModel 和 Room。
了解在生产级应用程序中如何将最流行的 Jetpack 库组合在一起使用。

新闻和视频