0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在 I/O 看未来 | Jetpack 新功能一览

谷歌开发者 来源:未知 2023-06-01 01:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 / Android 产品经理 Amanda Alexander

Android Jetpack现代 Android 开发 (Modern Android Development) 的关键组成支柱。Android Jetpack 套件包含超 100 个库、工具及指南,可帮助开发者遵循最佳实践、减少样板代码,并编写可在各种 Android 版本和设备中一致运行的代码,以便您可以专注于为应用构建特色功能。Google Play 上的大多数应用都使用 Jetpack 进行开发,事实上,在排行榜前 1,000 的应用中,超过 90% 的应用都使用了 Jetpack

  • Android Jetpackhttps://developer.android.google.cn/jetpack
  • 现代 Android 开发https://developer.android.google.cn/modern-android-development

下面我们将介绍 Jetpack 三大主要领域的近期更新亮点:

  • 架构库及相关指南
  • 应用性能优化

  • 界面库及相关指南

最后,我们会在本文结尾部分介绍一些其他关键更新。

架构库及相关指南

应用架构库和组件可确保应用的稳健性、可测试性及可维护性。

数据持久化

大多数应用都需要持久化本地状态,无论是缓存结果、管理用户输入数据的本地列表,还是为界面中返回的数据提供支持。Room 是我们推荐的数据持久化层,它在 SQLite 的基础上提供了一个抽象层,从而提高了平台的易用性和安全性。

  • Room

    https://developer.android.google.cn/jetpack/androidx/releases/room

在 Room 中,我们引入了许多全新功能,比如新增 Upsert 操作 (如果不存在唯一性冲突,Upsert 会尝试插入实体;如果存在冲突,Upsert 则会尝试更新实体),以及支持在 KSP 中使用 Kotlin 值类。这些新功能可以在 Room 2.6-alpha 版本中使用,其中所有的库源代码均以 Kotlin 编写,同时支持 Java 编程语言和 Kotlin 代码生成。

  • Room 2.6-alpha 版本

    https://developer.android.google.cn/jetpack/androidx/releases/room#2.6.0-alpha01

使用 WorkManager 管理任务

借助 WorkManager 库,您可以轻松调度必须可靠运行的可延期异步任务,例如上传备份或分析。使用这些 API,您可以创建任务并将其提交给 WorkManager,以便在满足工作约束条件时运行。 现在,您可以借助 WorkManager 在您已将 WorkRequest 加入队列的情况下对其进行更新。在经常更改约束条件或需要实时更新工作器的大型应用中,这种操作通常十分必要。自 WorkManager 2.8.0 版起,您可以使用 updateWork() API 来实现这一目的,而无需进行手动取消并将新的 WorkRequest 加入队列的步骤。这大大简化了开发过程。

  • WorkManager 2.8.0 版

    https://developer.android.google.cn/jetpack/androidx/releases/work

DataStore

DataStore 库是一个强大的数据存储解决方案,可解决关于 SharedPreferences 的问题,并提供基于新式协程的 API。

  • DataStore

    https://developer.android.google.cn/jetpack/androidx/releases/datastore

DataStore 1.1 Alpha 版中,我们增加了一个备受期待的功能: 多进程支持。您可借此从多个进程访问 DataStore,同时获得进程之间的数据一致性保证。我们还推出了其他功能,包括新的存储接口,可以切换 DataStore 的底层存储机制 (我们已提供适用于 java.io 和 okio 的实现)。此外,我们还增加了对 Kotlin 多平台的支持。

  • DataStore 1.1 Alpha 版

    https://developer.android.google.cn/jetpack/androidx/releases/datastore#1.1.0-alpha04

生命周期管理

生命周期感知型组件可执行操作来响应另一个组件 (如 activity 和 fragment) 的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。

我们发布了 Lifecycle 2.6.0 稳定版,其中包括更多 Compose 集成。我们在 Flow 上新增了一个扩展方法,即 collectAsStateWithLifecycle()。该扩展从数据流中收集数据,并以可感知生命周期的方式将其最新值表示为 Compose 状态。此外,该扩展将大量的类转换为 Kotlin,并且仍然保留与之前版本的二进制兼容性。

  • Lifecycle 2.6.0

    https://developer.android.google.cn/jetpack/androidx/releases/lifecycle#2.6.0

  • 将其最新值表示为 Compose 状态

    https://medium.com/androiddevelopers/consuming-flows-safely-in-jetpack-compose-cde014d0d5a3

预测性返回手势

在 Android 13 中,我们为手机大屏设备和可折叠设备等 Android 设备引入了预测性返回手势。该功能的发布历程跨度将达多年;在完全实现后,该功能可让用户在完全完成某个返回手势之前就能预览此手势完成后的目的地或其他结果,以便用户能够决定是继续完成手势还是留在当前视图中。

Android 预测性返回的 Activity API 较为稳定,并且我们已更新使用受支持的系统返回回调函数的最佳实践,包括 BackHandler (用于 Compose)、OnBackPressedCallback 或 OnBackInvokedCallback。我们很高兴看到许多 Google 应用采用预测性返回功能,包括 Google Play 商店、Google 日历、Google 新闻和 Google TV!

  • 最佳实践

    https://developer.android.google.cn/guide/navigation/predictive-back-gesture#best-practices

在 Activity 1.8 Alpha 版中,除了之前用于处理返回手势的 handleOnBackPressed() 回调,OnBackPressedCallback 类现包含新的预测性返回进度回调,可用于处理返回手势的开始、整个手势的进展以及返回手势的取消。我们还添加了 ComponentActivity.setUpEdgeToEdge(),以向后兼容的方式轻松设置全屏显示。

Activity更新带来更加一致的

照片选择器体验

Android 照片选择器是一个可浏览界面,用于展示用户的媒体库。在 Activity 1.7.0 版中,我们更新了照片选择器 Activity 协定,以包含一个额外的回退,这允许原始设备制造商 (OEM) 和 Google Play 服务等系统应用通过实现回退操作,在更广泛的 Android 设备和 API 级别上提供一致的照片选择器体验。如需了解详细信息,您可以参阅相关文章

  • Activity 1.7.0 版

    https://developer.android.google.cn/jetpack/androidx/releases/activity#1.7.0

  • 相关文章

    https://android-developers.googleblog.com/2023/04/photo-picker-everywhere.html

渐进式数据提取

使用 Paging 库,您可以加载和显示小型数据片段,以改善网络和系统资源消耗。应用数据可以在 RecyclerViews 或 Compose 延迟列表中逐步妥善地加载。

  • Paging

    https://developer.android.google.cn/jetpack/androidx/releases/paging

Paging Compose 1.0.0-alpha19 版支持所有的延迟布局,包括由 Wear 和 TV 库提供的自定义布局。为了支持更多延迟布局,Paging Compose 目前在 LazyPagingItemsitemKeyitemContentType 中提供略低级别的扩展方法。这些 API 旨在帮助您实现 LazyColumnLazyVerticalGrid 及其 API 中的等效项 (如 HorizontalPager) 的已有标准项目 API 的 Key 和 contentType 参数。虽然这些变化确实让 LazyColumnLazyRow 的示例增加了几行内容,但它确保了所有延迟布局的一致性。

  • Paging Compose 1.0.0-alpha19 版

    https://developer.android.google.cn/jetpack/androidx/releases/paging#1.0.0-alpha19

应用性能优化

通过使用性能库,您可以构建高性能的应用,并有针对性的优化以保持其性能表现,从而提供更好的最终用户体验。

缩短启动时间

借助基准配置文件,您可以在安装应用时部分编译应用,以提高运行时和启动的性能,并在新的工具和库中获得大幅提升:

  • 基准配置文件

    https://developer.android.google.cn/topic/performance/baselineprofiles/overview

Jetpack 在 Alpha 版本中提供了一个新的基准配置文件 Gradle 插件,该插件支持 AGP 8.0 及更高版本,并且您可以在 Studio Hedgehog (目前处于 Canary 版) 中轻松添加至项目。该插件可以将一系列任务自动化,如运行生成任务、从设备中提取配置文件,并定期或作为发布流程的一部分将其整合到您构建的版本中。

  • 基准配置文件 Gradle 插件

    https://developer.android.google.cn/topic/performance/baselineprofiles/create-baselineprofile#baseline-profile-gradle-plugin

  • 在 Studio Hedgehog (目前处于 Canary 版) 中轻松添加至项目

    https://developer.android.google.cn/studio/preview

借助该插件,您亦可在 AGP 8.1 版中轻松自动化新的 Dex 布局优化功能,以便您定义 BaselineProfileRule 测试。此类测试会收集启动时使用的类,并将它们移至 MultiDex 应用中的 Dex 主要文件,从而提高局部性。在大型应用中,该插件可以让冷启动时间在基准配置文件的基础上缩短 30%!

  • 新的 Dex 布局优化功能

    https://developer.android.google.cn/topic/performance/baselineprofiles/overview

Macrobenchmark 1.2 Alpha 版推出了许多新功能,比如 PowerMetric自定义轨迹指标 (Custom trace metrics)、在 Android 13 上无需 root 即可生成基准配置文件,以及在 Android 14 上无需清除应用数据即可重新编译的功能。
  • PowerMetric

    https://developer.android.google.cn/reference/androidx/benchmark/macro/PowerMetric

  • 自定义轨迹指标

    https://developer.android.google.cn/reference/androidx/benchmark/macro/TraceMetric

您可以在《Android 性能更新》文章中深入了解所有相关内容。

  • Android 性能更新

    https://medium.com/androiddevelopers/whats-new-in-android-performance-google-i-o-2023-edition-21a1832c9fa3

界面库及相关指南

我们对界面库进行了几项更新,以更好地支持大屏幕兼容性、可折叠设备和表情符号。

Jetpack Compose

Jetpack Compose 是 Android 用于构建原生界面的现代工具包,最近发布了 2023 年 5 月版本,其中不仅包括文本和布局的新功能、持续的性能改进、增强的工具支持、对大屏设备的更多支持,还包括更新后的指南。您可以阅读《Jetpack Compose 的新功能》I/O 大会文章了解详情。

  • 2023 年 5 月版本

    https://developer.android.google.cn/jetpack/androidx/releases/compose#2023.05.00

  • Jetpack Compose 的新功能

    https://android-developers.googleblog.com/2023/05/whats-new-in-jetpack-compose.html

Glance

Glance 库现在推出了 1.0-beta 版,可以让您使用 Jetpack Compose 开发针对 Android 手机、平板电脑和可折叠主屏幕优化的应用微件 (widget)。该库使用 Kotlin 和 Compose,为您提供开箱即用的最新 Android widget 改进

  • Glance

    https://developer.android.google.cn/jetpack/androidx/releases/glance

  • 1.0-beta 版

    https://developer.android.google.cn/jetpack/androidx/releases/glance#version_100_2

  • 应用微件 (widget)

    https://developer.android.google.cn/develop/ui/views/appwidgets/overview

  • Android widget 改进

    https://developer.android.google.cn/about/versions/12/features/widgets

Compose for TV

TV 库 Alpha 版发布后,您现在可以使用针对客厅体验优化的组件为 Android TV 打造出色体验。Compose for TV 可以让 TV 应用享受 Jetpack Compose 的各项优势,使您能够以更少的代码、更便捷的维护以及现代 Material 3 外观直接构建应用。您可以参阅《Compose for TV》文章了解更多详情。

  • TV 库

    https://developer.android.google.cn/jetpack/androidx/releases/tv

  • Compose for TV

    https://android-developers.googleblog.com/2023/05/building-pixel-perfect-living-room-experiences-compose-for-tv.html

Material 3 for Compose

Material Design 3 是 Material Design 的新一代版本,帮助您构建富有表现力、生动个性的应用。Material 3 是 Android 应用的推荐设计系统,1.1 稳定版更是引入了激动人心的新功能,如底部动作条、日期和时间选择器、搜索栏、提示,并增加了更多动作和交互支持。如需了解详细信息,您可以参阅版本说明文章
  • Material Design 3

    https://m3.material.io/

  • 1.1 稳定版

    https://developer.android.google.cn/reference/kotlin/androidx/compose/material3/package-summary

  • 版本说明文章

    https://material.io/blog/material-3-compose-1-1

了解窗口状态

新的 WindowManager 库为 API 版本 14 及更高版本提供了一个通用式 API 接口,可帮助开发者为新的设备外形规格和多窗口环境提供支持。
  • WindowManager

    https://developer.android.google.cn/jetpack/androidx/releases/window

1.1.0-beta01 版中,Activity 嵌入和窗口布局增加了新的特性和功能,以便您优化大屏设备上的多 Activity 应用。Jetpack WindowManager 1.1 版本发布后,Activity 嵌入 API 将不再是实验性功能。我们建议开发者为多 Activity 应用采用此 API 以提供更好的大屏幕布局。如需了解详细信息和迁移步骤,您可以参阅《WindowManager 1.1.0-beta01 新功能详解》。
  • 1.1.0-beta01 版

    https://developer.android.google.cn/jetpack/androidx/releases/window#1.1.0-beta01

其他关键更新

Kotlin 多平台

我们继续对使用 Kotlin 多平台在 Android 和 iOS 之间共享业务逻辑进行实验。我们更新了 Collections 1.3.0-alpha03 版DataStore 1.1.0-alpha02 版,以便您现在可以在 KMM 项目中使用这些库。如果您在应用中使用 Kotlin 多平台,我们期待收到您的反馈

  • Kotlin 多平台

    https://developer.android.google.cn/kotlin/multiplatform

  • Collections 1.3.0-alpha03 版

    https://developer.android.google.cn/jetpack/androidx/releases/collection#1.3.0-alpha03

  • DataStore 1.1.0-alpha02 版

    https://developer.android.google.cn/jetpack/androidx/releases/datastore#1.1.0-alpha02

  • KMM

    https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html

  • 反馈

    https://issuetracker.google.com/issues/new?component=1337890&template=1803002

以上内容是过去几个月中 Jetpack 的所有重要更新回顾,希望这些内容可以帮助您更高效地构建应用。如需了解每个 Jetpack 库的更多详情,您可以查看 AndroidX 版本说明;如需快速找到相关库,您可以使用 API 选取器;如需了解其他精彩内容,您可以观看 Google I/O 大会演讲视频

  • AndroidX 版本说明

    https://developer.android.google.cn/jetpack/androidx/versions

  • API 选取器

    https://developer.android.google.cn/jetpack/androidx/explorer?case=popular

  • 观看 Google I/O 大会演讲视频

    https://io.google/2023/program/

Java 是 Oracle 和/或其附属公司的商标或注册商标。

4290f534-ffd7-11ed-90ce-dac502259ad0.gif 点击屏末||即刻了解更多 Android Jetpack 相关信息

42990508-ffd7-11ed-90ce-dac502259ad0.png

42a4aaac-ffd7-11ed-90ce-dac502259ad0.png

42b06004-ffd7-11ed-90ce-dac502259ad0.png


原文标题:在 I/O 看未来 | Jetpack 新功能一览

文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    6244

    浏览量

    110229

原文标题:在 I/O 看未来 | Jetpack 新功能一览

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    浅谈光学I/O模块的热挑战

    服务器和机架式网络基础设施系统内的光学 I/O 模块通常接受主动冷却系统的直接冷却,特别是来自机架式设备前面板的强制风冷。机架式设备的散热设计需要平衡 I/O 模块的热管理与处理器或
    的头像 发表于 11-03 09:32 428次阅读
    浅谈光学<b class='flag-5'>I</b>/<b class='flag-5'>O</b>模块的热挑战

    工业人速!什么是耦合器模块?什么是插片式I/O模块?

    什么是耦合器模块? 耦合器模块,模块化I/O系统中,可以理解为 “通信管理中枢” 或 “大脑”。 耦合器模块核心定义: 耦合器模块是个安装在导轨上的基础模块,它是整个远程
    的头像 发表于 11-03 09:31 380次阅读
    工业人速<b class='flag-5'>看</b>!什么是耦合器模块?什么是插片式<b class='flag-5'>I</b>/<b class='flag-5'>O</b>模块?

    如何解决I/O时钟布局器错误

    I/O 时钟布局器阶段可能会发生错误,指出该工具无法对该时钟结构进行布局,直至最后 BUFG 仍然无法完成布局。
    的头像 发表于 09-23 16:05 584次阅读

    TCA9537远程4位I²C/SMBus I/O扩展器技术解析与应用指南

    Texas Instruments TCA9537远程4位I^2^C和SMBus I/O扩展器1.65V至5.5V V~CC~电压下运行,可通过I
    的头像 发表于 09-15 16:00 644次阅读
    TCA9537远程4位<b class='flag-5'>I</b>²C/SMBus <b class='flag-5'>I</b>/<b class='flag-5'>O</b>扩展器技术解析与应用指南

    蔡司软件 | ZEISS CALYPSO航空航天行业的实用新功能

    蔡司软件 | ZEISS CALYPSO航空航天行业的实用新功能
    的头像 发表于 08-08 15:37 637次阅读
    蔡司软件 | ZEISS CALYPSO<b class='flag-5'>在</b>航空航天行业的实用<b class='flag-5'>新功能</b>

    TCAL9539 I2C总线I/O扩展器技术解析与应用指南

    需要额外的I/O时,TCAL9539/TCAL9539-Q1这样的I/O扩展器提供了个简单的解决方案。
    的头像 发表于 08-08 11:49 921次阅读
    TCAL9539 <b class='flag-5'>I</b>2C总线<b class='flag-5'>I</b>/<b class='flag-5'>O</b>扩展器技术解析与应用指南

    全新导航库Jetpack Navigation 3发布

    应用中的不同屏幕之间导航理应简单明了。然而,构建稳健、可扩展且赏心悦目的导航体验却并非易事。多年来,Jetpack Navigation 库直是开发者的重要工具,但随着 Android 界面格局的演变,尤其是
    的头像 发表于 08-06 13:56 939次阅读

    技术资讯 I Allegro X PCB 设计工具新增功能一览

    和精度打造新代PCB产品。阅读本文,了解如何使用AllegroX的最新功能提升设计能力。增强3DX3DX窗口新增了系列功能,提升3D适用体验。其性能和可视化增强
    的头像 发表于 07-11 16:31 1668次阅读
    技术资讯 <b class='flag-5'>I</b> Allegro X PCB 设计工具新增<b class='flag-5'>功能</b><b class='flag-5'>一览</b>

    新升级!功能更强大的串口I/O联网模块,ASK/OOK超外差无线射频模块

    ),转换为串口数据传输到组态软件或PLC,通过串口下发指令控制1/2/3/4路继电器开关输出(DO),实现远程采集控制功能的串口I/O联网模块(又称“远程IO”)。产品
    的头像 发表于 06-05 19:32 941次阅读
    新升级!<b class='flag-5'>功能</b>更强大的串口<b class='flag-5'>I</b>/<b class='flag-5'>O</b>联网模块,ASK/OOK超外差无线射频模块

    世界各国&地区常见电压/频率/插头/插座一览

    电子发烧友网站提供《世界各国&地区常见电压/频率/插头/插座一览表.pdf》资料免费下载
    发表于 05-30 16:27 7次下载

    MAX7325 I²C端口扩展器,提供8路推挽式I/O和8个漏极开路I/O技术手册

    MAX7325 2线串行接口外设具有16路I/O端口。其中8路为推挽输出,另外8路为I/O端口,带有可选择的内部上拉和瞬态检测功能。8路
    的头像 发表于 05-22 15:27 669次阅读
    MAX7325 <b class='flag-5'>I</b>²C端口扩展器,提供8路推挽式<b class='flag-5'>I</b>/<b class='flag-5'>O</b>和8个漏极开路<b class='flag-5'>I</b>/<b class='flag-5'>O</b>技术手册

    ADP5588移动I/O扩展器和QWERTY键盘控制器技术手册

    ADP5588是I/O端口扩展器和键盘矩阵,适用于需要大型键盘矩阵和扩展I/O线路的QWERTY型电话。
    的头像 发表于 05-22 11:37 678次阅读
    ADP5588移动<b class='flag-5'>I</b>/<b class='flag-5'>O</b>扩展器和QWERTY键盘控制器技术手册

    小米15 Ultra核心供应商一览

    15Ultra硬件配置上堪称顶级,搭载了1英寸大底主摄和徕卡2亿像素超级长焦镜头,配备6000mAh金沙江电池,支持卫星通信和AI人像动态壁纸等创新功能。此外,该机还具备
    的头像 发表于 03-04 16:33 2005次阅读
    小米15 Ultra核心供应商<b class='flag-5'>一览</b>

    I/O接口与I/O端口的区别

    计算机系统中,I/O接口与I/O端口是实现CPU与外部设备数据交换的关键组件,它们
    的头像 发表于 02-02 16:00 2789次阅读

    EtherCAT插片式I/O性价比不错的款方案—FCE1302 插片式I/O介绍

    寄存器、1KB 过程数据存储器、支持 64 位分布时钟功能,采用QFN32-EP封装。保证满足EtherCAT插片式I/O方案必要功能和稳
    的头像 发表于 01-10 10:49 1028次阅读
    EtherCAT插片式<b class='flag-5'>I</b>/<b class='flag-5'>O</b>性价比不错的<b class='flag-5'>一</b>款方案—FCE1302 插片式<b class='flag-5'>I</b>/<b class='flag-5'>O</b>介绍