本期更新主要看点,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_IMAGES
或READ_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