Android Jetpack
Jetpack 是一套库,旨在帮助开发者遵循最佳实践,减少样板代码,并编写可在各种 Android 版本和设备上一致运行的代码,以便开发者可以专注于他们关心的代码。
学习使用 Jetpack
基础培训
在 Android 基础 Compose 课程中学习重要的 Jetpack 库,并减少应用中的样板代码。
实践教程
动手实践三个简化数据层的 Jetpack 库:LiveData、ViewModel 和 Room。
现在在 Android 示例应用中
探索现代 Android 架构如何在真实应用中实现。
Jetpack 库 探索所有库
* 常用和流行的库在最前面列出
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.runtime | Compose 编程模型和状态管理的基础构建块,以及 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 开始,后台检查限制使得此类不再有用。 |
lint | Lint 检查以验证 Gradle API 的使用情况 |
loader | 为您的 UI 加载在配置更改后仍然存在的数据。 |
localbroadcastmanager | 此工件及其类已弃用。改用 LiveData 或响应式流。 |
media | 与其他应用程序共享媒体内容和控件。被 media2 取代。 |
media2 | 与其他应用程序共享媒体内容和控件。 |
media3 * | 媒体用例的支持库。 |
mediarouter | 使用通用用户界面在远程接收设备上启用媒体显示和播放。 |
multidex | 在 Android 5 之前的设备上部署包含多个 dex 文件的应用程序。 |
metrics | 跟踪和报告应用程序的各种运行时指标 |
palette | 从图像中提取代表性的调色板。 |
一个库,用于在应用程序内部添加 pdf 查看功能。 | |
percentlayout | 此工件及其类已弃用。改用 ConstraintLayout 和相关布局。 |
preference | 构建交互式设置屏幕,无需与设备存储交互或管理 UI。 |
从您的应用程序打印照片、文档和其他图形和图像。 | |
privacysandbox.activity | TODO |
privacysandbox.ads | 此库支持与隐私保护 API 集成,这些 API 是 Android 上的隐私沙箱的一部分。 |
privacysandbox.plugins | Android 隐私沙箱 Sdk 库 Gradle 插件 |
privacysandbox.sdkruntime | 此库为 SdkRuntime 意识的使用者提供组件 |
privacysandbox.tools | 一个用于在 Android 中利用隐私沙箱功能的库 |
privacysandbox.ui | TODO |
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 增加了功能,因为它使开发者能够修改分屏行为,在运行时检查(和更改)分屏状态,实现水平分割,并在全窗口启动模态窗口。
- 发行说明
- 有关详细信息,请访问我们的发行说明。