Android Developers Blog 中文 笔记

Android Developers Blog 中文

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

笔记线程

Google 将在 Google Books 中引入一个 Linux 终端,旨在让所有用户,无论其技术背景如何,都能获得访问 AI 工作流的权限。该新功能预装了必要的工具,以便用户立即开始使用。该终端是代理开发的入口点,允许 AI 代理根据自然语言提示执行安装软件、写入文件以及自动化流程等任务。安全是核心原则,该终端在隔离的 Linux 虚拟机(VM)沙箱中运行,从而保护主机操作系统和用户文件。用户可以安全地向 AI 工具授予管理员权限,因为所有操作均限制在虚拟机内。挂载目录需要用户的明确授权,而一键虚拟机重置功能则允许用户在无压力的情况下进行实验,同时保留用户文件。Linux 文件可通过 Google Books Files 应用访问,并与同步的 Android 手机内容无缝集成。Debian Linux 环境提供了成熟的生态系统,可访问标准开发工具,如 apt、git 和 ssh。该终端针对快速原型设计、Web 开发、脚本编写及代理工作流进行了优化,具备自动本地主机端口转发功能,并支持 Node.js 和 Python 等流行运行时。用户还可以调整虚拟机内存以优化性能。未来计划包括将 Linux GUI 应用支持集成到应用启动器中,使用户能够直接在 Google Books 上运行图形化 Linux 应用。路线图还包含 USB 透传以支持本地设备调试、针对更复杂任务的动态内存和存储扩展,以及对高负载工作流进行 GPU/NPU 硬件加速。此外,还计划实现虚拟机持久化以及与终端窗口的分离,以更好地支持长期运行的代理进程。Google 鼓励用户反馈并参与塑造这一不断发展的生态系统。
Instagram Direct 团队通过采用 Jetpack Compose 对其 Android 用户界面进行了重大现代化改造。此次迁移不仅是一次简单的 UI 重写,更旨在从头构建一个原生 AI 的代码库。主要动机是解决与高度优化的遗留 View 系统相关的技术债务和工程开销。选择 Jetpack Compose 的声明式特性,是为了使 UI 代码更具可预测性,并更易于 AI 模型理解。鉴于 Instagram Direct 规模庞大,每日处理数十亿条消息,渐进式迁移策略至关重要。虽然将 Compose 嵌入现有的 View 层级被视为一个过渡步骤,但团队更倾向于完成全面过渡,以避免因混合 UI 范式而引发的细微 bug 和性能问题。团队专注于建立清晰的架构边界,以提升 AI 生成高质量代码的能力。通过遵循对 AI 友好的原则,例如最小化自定义上下文依赖并强制实施架构边界,团队确保了更优的 AI 输出结果。他们开发了一套结构化的迁移流程:首先利用 AI 协助编写所有 Compose 代码,随后进行打磨和测试。这种方法实现了快速开发,同时未干扰正在进行的功能发布。结果显示了显著改进:UI 代码量减少 50%,工程师与 AI 代理的交互次数下降 32%,AI 执行时间缩短 35%。与 View 相比,使用 Compose 执行 AI 任务时的 Token 成本也降低了 33%。基于 Compose 的新 UI 在代码风险方面表现出比遗留 View 系统更强的韧性。Meta 与 Google 之间的这一协作不仅现代化了 Instagram Direct,还通过优化 Compose 本身为更广泛的 Android 开发者生态系统做出了贡献。团队成功达到甚至超越了遗留 UI 的高性能基准,确保了无缝的用户体验。
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 卡顿来提升性能。