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

学习使用 Jetpack

在 Android 基础 Compose 课程中学习重要的 Jetpack 库,并减少应用中的样板代码。
动手实践三个简化数据层的 Jetpack 库:LiveData、ViewModel 和 Room。
探索现代 Android 架构如何在真实应用中实现。

* 常用和流行的库在最前面列出

activity *访问构建在 Activity 之上的可组合 API。
appcompat *允许在平台的旧 API 版本(许多使用 Material Design)上访问新 API。
appsearch *为您的用户构建自定义的应用内搜索功能。
camera *构建移动相机应用。
compose *使用可组合函数以编程方式定义您的 UI,这些函数描述了它的形状和数据依赖项。
databinding *使用声明性格式将布局中的 UI 组件绑定到应用中的数据源。
fragment *将您的应用细分为多个独立的屏幕,这些屏幕托管在 Activity 中。
hilt *扩展 Dagger Hilt 的功能,以启用从 androidx 库中对某些类的依赖注入。
lifecycle *构建生命周期感知组件,这些组件可以根据 Activity 或 Fragment 的当前生命周期状态调整行为。
Material Design Components * 用于 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使用 Android 平台的蓝牙功能,并提供向后兼容的 API。
browser在用户的默认浏览器中显示网页。
car-app构建用于 Android Auto 和 Android Automotive OS 的模板化应用。
cardview使用圆角和阴影实现 Material Design 卡片模式。
collection减少现有和新的小型集合的内存影响。
compose.animation在 Jetpack Compose 应用中构建动画以丰富用户体验。
compose.compiler使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
compose.foundation使用现成的构建块编写 Jetpack Compose 应用,并扩展基础功能以构建您自己的设计系统组件。
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 视觉风格和系统 UI 保持一致。
compose.runtimeCompose 编程模型和状态管理的基础构建块,以及 Compose 编译器插件的目标核心运行时。
compose.ui与设备交互所需的 Compose UI 的基础组件,包括布局、绘制和输入。
concurrent使用协程将任务从主线程移开,并利用 ListenableFuture。
constraintlayout使用相对定位以灵活的方式定位和调整小部件的大小。
contentpager在后台线程中加载和翻阅 ContentProvider 数据。
coordinatorlayout定位顶级应用小部件,例如 AppBarLayout 和 FloatingActionButton。
core面向最新的平台功能和 API,同时还支持旧设备。
core.uwb在支持的设备上实现 UWB(超宽带)。
credentials该库提供对用户凭据的统一访问。这可能包括密码、密钥和联合凭据。此库应用于提供无缝且安全的登录体验。
cursoradapter将游标数据公开到 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 格式。
input通过预测未来的 MotionEvents 来减少输入交互的延迟
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.activityTODO
privacysandbox.ads此库支持与隐私保护 API 集成,这些 API 是 Android 上的隐私沙箱的一部分。
privacysandbox.pluginsAndroid 隐私沙箱 Sdk 库 Gradle 插件
privacysandbox.sdkruntime此库为 SdkRuntime 意识的使用者提供组件
privacysandbox.tools一个用于在 Android 中利用隐私沙箱功能的库
privacysandbox.uiTODO
profileinstaller使库能够在编译之前预先填充编译跟踪,供 ART 读取。
recommendation将内容推广到 Android TV 启动器主屏幕。
recyclerview在您的 UI 中显示大量数据,同时最大限度地减少内存使用。
remotecallback创建一个包装器,使开发人员更容易提供 PendingIntent。
resourceinspection在 Android Studio 的实时布局检查器中显示自定义视图的属性。
savedstate编写可插拔组件,在进程死亡时保存 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 TV 频道。
vectordrawable渲染矢量图形。
versionedparcelable提供一种稳定且紧凑的二进制序列化格式,可以跨进程传递或安全地持久化。
viewpager以可滑动格式显示视图或片段。如果可能,改用 viewpager2。
viewpager2以可滑动格式显示视图或片段。
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%。8 月的 Compose 版本还使内存分配效率提高了 70%(尤其是在图形堆栈中),这将减少 Compose 在设备上的内存占用量
Wear Compose 和 Tiles 1.2
Wear Compose 和 Wear Tiles 都已进入稳定版本,以进一步增强 WearOS 开发者的体验。两者相互补充,Wear Compose 可用于在可穿戴设备上构建复杂的应用程序屏幕,而 Wear Tiles 可用于创建应用程序磁贴。新的 Wear Compose 版本包含新的功能,例如可扩展项目和滑动以揭示。Wear Tiles 版本现在还支持小部件动画和平台数据绑定(例如健康数据源)。
Window 1.1
1.1 使活动嵌入 API 稳定,允许 WhatsApp、eBay 和 Temu 等应用程序发布大屏幕布局。该 API 增加了功能,因为它使开发者能够修改分屏行为,在运行时检查(和更改)分屏状态,实现水平分割,并在全窗口启动模态窗口。
发行说明
有关详细信息,请访问我们的发行说明。

为什么要使用 Android Jetpack?

Android Jetpack 库围绕现代设计实践构建,能够减少崩溃和内存泄漏,并具有内置的向后兼容性。
Android Jetpack 管理繁琐的活动,例如后台任务、导航和生命周期管理,因此您可以专注于使您的应用程序变得很棒。
使用在 Android 版本和设备上始终如一地工作的库来减少复杂性。

新闻和视频