Android Developers Blog 中文 笔记

Android Developers Blog 中文

Android 开发者博客是一个由 Google 维护的平台,为 Android 应用开发者提供更新、见解和指南。它定期发布关于各种主题的帖子,包括 Android 的新功能、Android 开发工具的更新、开发者成功故事和开发者最佳实践提示。 该博客面向 Android 应用开发者,旨在帮助他们将应用程序优化到 Android 平台上。它还鼓励开发者分享他们在应用开发中的经验、想法和成就。

笔记线程

Android Auto 和 Android Automotive OS 的游戏类别已从测试版(beta)转为正式发布(general availability)。开发者现在可以向这些平台发布游戏,从而在用户车辆的自然空闲时段触达用户。若要适配现有 Android 游戏,开发者需配置其应用清单(app manifest),并确保游戏尊重车辆的驻车状态。清单必须通过 android:appCategory="game" 属性声明该应用为游戏。支持 Android Auto 需通过在活动的意图过滤器(intent filter)中包含 android.intent.category.CAR_LAUNCHER 类别元素来声明。对于 Android Automotive OS,则必须在清单中包含 android.hardware.automotive 元素。游戏被视为驻车应用,在车辆行驶期间不得运行,以防止驾驶员分心。开发者应确保游戏音频在用户开始驾驶时停止,且在车辆行驶期间不会恢复暂停。此外,游戏在 UX 限制生效后重新启动时,必须恢复其状态,并保证响应流畅,无卡顿或掉帧。通过 android.hardware.gamepad 特性声明控制器支持,可提升寻求兼容控制器游戏的用户的可见性。游戏还应适配各种车载屏幕尺寸和宽高比,实现全屏运行,无黑边(letterboxing 或 pillarboxing)。在提交至生产环境之前,开发者必须在 Google Play Console 中启用 Android Auto 和 Android Automotive OS 设备形态,并依据车载应用质量指南测试其游戏。桌面主机(Desktop Head Unit)和 Android Automotive OS 模拟器可用于全面测试。游戏在获批前,将依据游戏类别的车载应用质量指南进行审核。
WhatsApp 作为全球最大的 messaging 平台,于 2023 年采用通行密钥(passkeys),提升了用户的安全性与便利性。该举措旨在提供一种快速且抗钓鱼的认证方式,降低用户摩擦,并防范账户接管。WhatsApp 注册与访问团队的 Android 工程师 Mayank Manuja 主导了该方案的设计与实施。面向数十亿用户构建系统,需要应对多样化的网络条件、设备能力以及数字素养水平。通行密钥提供流畅的单击登录体验,利用公钥 - 私钥加密技术,并结合生物识别或屏幕锁进行认证。这显著提升了登录速度,并在传统短信 OTP 投递不一致的环境中仍能可靠运行。从开发者视角来看,Credential Manager API 提供了统一的接口,简化了集成工作,尽管 Android 版本和设备配置之间存在大量边缘情况。WhatsApp 与 Google 合作优化了凭据查找流程,提升了新通行密钥用户的延迟表现。他们还构建了全面的错误处理层,以管理设备特定的障碍,并在通行密钥流程无法完成时确保优雅降级。此外,他们解决了操作系统特定的异常,实施了平台级改进,使通行密钥创建流程更加顺畅。WhatsApp 通过广泛的 A/B 测试优化了用户体验,开发了一个用于提示创建通行密钥的上下文框架。在后端,WhatsApp 服务器使用 Erlang 和 Rust 的 webauthn-rs 库实现标准的 WebAuthn/FIDO2 仪式,用于签名验证。服务器架构负责编排通行密钥注册,包括向客户端生成选项、验证证明(attestation)以及安全持久化凭据。对于认证,服务器获取有效凭据,生成服务器端挑战,并验证客户端的断言(assertion)。高级架构考量包括迁移到每账户多通行密钥系统,这需要设计一个有界列表系统,以便在达到限制后淘汰旧凭据。这一重大的结构性变更通过严格的实验逐步推出,以确保稳定性。平衡凭据生命周期还需要谨慎管理凭据的有效性。
Jetpack Compose 2026 年 8 月版(版本 1.12)现已稳定发布。此次更新引入了网格渐变(Mesh Gradients)和广色域(Wide Color Gamut)支持,以呈现更丰富的视觉效果。同时,新增结构布局功能,包括 Grid 布局中的命名区域(named areas),以及与 Android 凭据管理器(Credential Manager)的无缝集成。对于开发者,编译 SDK 已更新至 API 37,要求最低使用 AGP 9.2.0;Modifier.onFirstVisible() 已被弃用,改用 Modifier.onVisibilityChanged()。图形能力得到增强,提供 MeshGradientPainter 以支持多点渐变,并实现广色域和 HDR 渲染的全流程支持。实验性的 Styles API 持续构建中,重点在于类型安全和自定义设计系统。运行时优化包括为一次性效果提供更高效的 Keyed SideEffect 重载。动画功能现已包含 DeferredTargetAnimation 的毕业(graduation),以及用于两阶段过渡的新组合式组件,支持手动控制与无缝交接。文本编辑方面,BasicTextField 新增丰富文本格式化的 API,SelectionState 提供对文本选择的程序化控制。凭据管理器集成允许文本字段提示输入通行密钥(passkeys)及已保存的凭据。布局增强包括在实验性 Grid 布局中支持命名区域,以简化复杂的二维排列。性能改进聚焦于启动速度,目标是将首次显示时间(Time to Initial Display)媲美 Views。测试升级提供了改进的测试同步能力,支持 hasPendingWork 和 runWithoutImplicitWait 等新 API。
Google Play 的首要任务是提供安全的在线体验并保护用户免受伤害。为此,Google Play 一直在投入资源加强基础保护措施,并为家长提供工具,使其能够为家庭做出决策。Google Play 还致力于赋能开发者,使其能够根据应用内容提供适龄的体验。Google Play 年龄信号 API 是一项保护隐私的工具,允许家长向应用分享其子女的年龄范围,从而使开发者能够定制应用内的安全体验和内容。该 API 正扩展至全球所有 Play 开发者,相关体验将于 8 月中旬率先在澳大利亚和加拿大的用户中推出,并于今年晚些时候实现全面全球推广。Play 年龄信号 API 将控制权交还给家长,使他们能够直接向应用分享子女的年龄范围,同时也让成年人在应用开发者提示时能够轻松分享自己的年龄。开发者将获得所需的安全信号,以便以适龄的方式为用户定制应用内的安全体验和内容,并且他们拥有灵活性来选择如何整合安全信号。该 API 简化了家长的安全设置,将年龄分享控制功能集中于一处,直接集成在 Google 家庭链接(Google Family Link)应用中;家长可以选择分享子女的年龄范围,并可随时更新或关闭该设置。Play 年龄信号 API 建立在 Google Play 上已确立的安全功能和严格政策的基础之上,包括针对家庭类应用的严格安全标准,以及内置的开发者工具,用于管理谁可以发现其应用。Play 年龄信号 API 的全球扩展为 Google Play 现有的安全套件增添了强大的新工具,帮助家长与开发者携手合作,使 Google Play 成为对家庭更安全、更值得信赖的平台。通过提供可靠的年龄信号,Google Play 使开发者能够完全自主地根据其受众定制应用的内容、功能和设置,从而为所有用户创造更安全的在线体验。
Google 宣布在 Jetpack XR 中预览 Geospatial API,将其视觉定位系统(VPS)引入 Android XR。该技术能够在支持区域将数字内容以高精度和方向锚定于现实世界。为展示其潜力,开发团队打造了 XR 地理空间导览,这是一种沉浸式、免手持的步行导览体验。该演示结合了 Geospatial API、Gemini API 与 Firebase AI Logic、Google Maps Grounding 以及 Jetpack XR SDK。Geospatial API 利用计算机视觉提供比 GPS 更精确的位置和航向信息。该应用会监控精度阈值,若用户处于室内或不受支持的位置,则提示其移动至可识别的户外区域。为生成导览路线,Gemini API 会根据用户坐标生成结构化的 JSON 响应,详述附近的步行导览。Google Maps Grounding 用于锚定 AI 生成的位置,防止出现偏差。动态语音解说采用 gemini-2.5-flash-tts 模型实现,该模型可直接返回音频数据,为虚拟导览员增添了生动且引人入胜的元素。Jetpack Compose for XR 用于渲染空间组件,使导览体验在 3D 空间中栩栩如生。开发团队构建了自定义组合组件(composables),例如 InfoSphere,以交互式方式展示兴趣点。通过将 Jetpack Compose for XR 与 Geospatial API 和 Gemini 相结合,开发者能够创建既理解用户位置又感知上下文的空間体验。Geospatial API 的可用性降低了在 Android 上构建世界级空间应用的门槛。开发者可申请加入 Android XR 开发者催化剂计划,以获取 XREAL Project Aura 开发套件。该举措旨在推动 Android XR 开发的创新。
Android 17 已发布,将操作系统转变为以应用为中心的智能系统。其强调自适应优先开发,强制支持大屏幕可缩放性,并增强了隐私、安全、媒体、相机和性能。源代码现已在 AOSP 上可供开发者查阅。Android 17 整合了硬件、软件与人工智能,以预判用户需求,并为应用参与提供新机遇。AppFunctions 作为平台 API,允许应用将能力贡献为可由 AI 代理调度的“工具”。Jetpack 库通过类注解和 KDoc 注释简化了 AppFunctions 的实现。拥有超过 5.8 亿台大屏幕设备,自适应开发至关重要,因此转向自适应优先标准。Android 17 移除了针对 API 级别 37 应用在大屏幕上的方向限制和可缩放性限制,要求这些应用适应任何窗口尺寸。新的多任务功能包括应用气泡(App Bubbles)用于悬浮应用、大屏幕上的气泡栏(Bubble Bar)用于管理这些气泡,以及桌面环境中的交互式画中画(Picture-in-Picture)。活动重建默认值已更新,以防止配置变更期间出现破坏性的状态丢失。“继续执行”(Continue On)功能允许在 Android 设备之间无缝切换任务。Jetpack Compose 现在是构建自适应应用的主要方式,所有新的 Android API 和库均专为 Compose 设计。传统的 View 组件现已进入维护模式。Android 17 包含性能改进,例如更严格的应用内存限制,将终止违规进程。代际垃圾回收和无锁 MessageQueue 进一步通过降低 CPU 使用率和减少 UI 卡顿来提升性能。