Now in Android #88 带你了解近期 Android 的一些新变化

本期更新主要看点,Android 14 正式版临近发布,需要做好行为变更适配、Jetpack Compose 1.5带来性能提升、Kotlin 多平台名称更改为 KMP。

什么是 Now in Android?

Now in Android 是 Android 官方持续更新的一份指南,以便于开发者了解 Android 开发领域的最新动态和值得关注的内容。

可能由于语言等各方面原因,导致这份指南在国内开发者中很少被知晓,同时还有一些优秀的资料存在"滞后性",为了打破这一信息差,我将会跟随 Now in Android 的更新,翻译整理形成一个系列。

该系列将以每一期 Now in Android 为大纲,结合同一段时间内 Youtube、 Medium、Android Developers Blog 等多方面内容,汇总 Android、Kotlin、Gradle 等最新动态。文章内容主要分为两个部分,一点变化 可以看作是关于 Android 生态链的一份 CHANGELOG,它也正像 CHANGELOG 那样,仅仅把一些重要的变化列举出来,这部分内容推荐大家"浅尝辄止",对变化做到心中有数,以保持自己知识的"新鲜度",碰见问题时也知道查找的方向。一点资料会收集演讲、文章、播客等表现形式,大多是分享者的经验总结以及 Android 官方的最佳实践。

本期内容更新自上一篇文章发布以来的变化,如果你没看过上一篇文章,可以点击🔗链接查看

一点变化

Android 14 Beta 5 已发布 🤖

昨天(8 月 10 日)Google 发布了 Android 14 Beta 5,这是 Android 14 Beta 计划中最后一次计划的更新,如果没有任何意外,Android 14 正式版将在几周后和我们正式见面。

为了保证你的应用能在用户升级正常使用,你至少应该关注 Android 14 的行为变更,因为这些变更会影响运行在Android 14 上的设置任何 targetSdkVersion 的应用,你至少应该关注以下的主要更改:

  • 授予对照片和视频的部分访问权限 - 在 Android 14 中,当应用请求 Android 13(API 级别 33)中引入的任何视觉媒体权限时,用户可以授予对其照片和视频的部分访问权限:READ_MEDIA_IMAGESREAD_MEDIA_VIDEO。如果您的应用已在使用照片选择器,则无需执行任何操作即可支持此变更。否则,您应使用新的 READ_MEDIA_VISUAL_USER_SELECTED 权限优化用户体验。

  • 安全的全屏 intent 通知 - 在 Android 14 中,创建全屏 intent 通知的应用程序仅限于提供通话和闹钟功能的应用程序,对于不适合此情况的任何应用,Google Play 商店会撤消其默认的 USE_FULL_SCREEN_INTENT权限。

  • 默认拒绝设定精确的闹钟 - 从 Android 14 开始,系统不再向以 Android 13 及更高版本为目标平台的大多数新安装应用预先授予 SCHEDULE_EXACT_ALARM 权限,该权限默认处于拒绝状态。

  • 非线性字体放大至 200%- 从 Android 14 开始,系统支持字体放大高达 200%,为弱视用户提供了符合网络内容无障碍指南 (WCAG) 的其他无障碍功能选项。如果您已使用放大像素 (sp) 单位来定义文本大小,这项更改可能不会对您的应用产生太大影响

  • 更多行为变更,请参阅行为变更:所有应用

更多详细信息请参阅Android 14 Beta 5

Kotlin K2 编译器 && Kotlin 多平台名称更新

上一篇文章,我们介绍 Kotlin 1.9 发布并带来了新的编译器,新的编译器实现(代号为 K2)带来了显著的构建速度改进,编译 Kotlin 代码的速度是原始编译器的两倍。

为了帮助稳定新编译器并确保您为 Kotlin 2.0 做好准备,Android 推荐使用新编译器编译您的项目,请查看博文,了解在 Android 中如何应用 K2 编译器。

关于使用 K2 编译器后对构建速度有多少提升,请参考 A glimpse of K2 in nowinandroid 文章,作者使用 nowinandroid 项目做了对比实验,结论是K2 可以显著缩短 Kotlin 的编译构建时间,但是由于 KAPT/KSP 不支持 K2 会回退到旧版编译器导致总体构建时间无显著提升

Kotlin 官方弃用了 Kotlin Multiplatform Mobile (KMM) 产品名称。从现在开始,Kotlin Multiplatform (KMP) 是跨平台共享代码的 Kotlin 技术的首选术语,无论讨论的目标组合如何。更改原因见链接

AndroidX 更新

Jetpack Compose 1.5 发布

本次更新主要侧重于性能改进。以下是本次更新的具体内容概述:

  • Modifier 性能改进,显著缩短了合成时间,在某些情况下提升高达 80%
  • 优化了内存使用,修复了 ComposeView 的内存泄漏
  • BasicText 更改了新渲染系统,这使初始合成时间平均缩短了 22%,并稳定了很多文本 API
  • 核心功能的改进和修复

更多详情请参阅What's new in the Jetpack Compose August '23 release 或站内文章Jetpack Compose 1.5 上新:性能升级,内存优化!

Paging 3.2.0 发布

Paging 3.2.0 标志着一个重要的里程碑:首次支持 Compose API 的稳定版本!新的分页测试工具可让您单独测试分页的每一层,而新的调试日志可帮助您更好地了解分页到底在做什么。更多详情请参照链接

Tips: 如果你打开链接发现网页并没有这个版本,不妨切换英文试试,因为 Google 机翻可能会有延迟

一点资料

Android 开发

标题 类型 描述
选择合适的存储体验 文章 如何适配Android 14 "选定照片访问"的新功能
Capture, edit, play, and share, the Media Developer Center has it all! 文章 文章介绍了Android 文档新增了"媒体开发人员中心",为了帮助开发人员完成优秀的音视频应用
Prepare your app for the new Samsung tablets, foldables and watches 文章 指导如何构建多设备体验
Jetpack Emoji Picker 简介:一种将表情符号添加到 Android 应用程序的新方法 文章 介绍了AndroidX emoji2 中新增的表情选择器

最后

这一篇 Now in Android 的汇总就在这里结束啦,如果大家对该栏目有任何建议或者资料推荐,可以在评论区留言,希望这份资料对大家有帮助,我们下期再见。

如果对该系列感兴趣,请关注专栏,也可以关注我的公众号 "简绘Android" 接收即时的更新推送。
🔗Now in Android #88

相关推荐
闲暇部落1 小时前
‌Kotlin中的?.和!!主要区别
android·开发语言·kotlin
诸神黄昏EX3 小时前
Android 分区相关介绍
android
大白要努力!4 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
Estar.Lee4 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
Winston Wood4 小时前
Perfetto学习大全
android·性能优化·perfetto
Dnelic-7 小时前
【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录
android·junit·单元测试·android studio·自学笔记
Eastsea.Chen9 小时前
MTK Android12 user版本MtkLogger
android·framework
长亭外的少年17 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin
JIAY_WX17 小时前
kotlin
开发语言·kotlin
建群新人小猿19 小时前
会员等级经验问题
android·开发语言·前端·javascript·php