Android Developers Blog 中文 笔记

Android Developers Blog 中文

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

笔记线程

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 卡顿来提升性能。
流畅的视频播放对于用户体验至关重要,但延迟是一个主要障碍。传统上,播放器在加载前等待选定,这对于短视频来说太慢了。解决方案是主动预加载,它在内容需要之前就准备好。预加载可以加快播放开始速度,减少缓冲,并提供更流畅的整体体验。本文将通过三部分系列介绍 Media3 的预加载实用工具。第一部分侧重于基础知识:理解 Media3 的预加载策略并设置 DefaultPreloadManager。预加载的核心思想是在播放开始前下载内容片段,就像在厨房里准备食材一样。Media3 提供了两个主要的预加载 API。第一个是 PreloadConfiguration,适用于播放列表可预测的场景,播放器会自动预加载下一项。这是一个易于尝试预加载的选项。第二个 API 是 PreloadManager,专为垂直信息流或轮播等动态 UI 设计,其中下一项不总是连续的。DefaultPreloadManager 是标准的实现,可以对预加载的内容和数量进行细粒度控制。它使用 TargetPreloadStatusControl 来定义基于项目与当前播放项目接近程度的预加载时长和优先级。这使得资源利用得到优化。要使用 PreloadManager,当 MediaItems 出现在 UI 中时,您就将它们添加到其中。当用户选择一个视频时,您可以从管理器中检索预加载的 MediaSource 以加快播放速度。保持管理器与当前播放索引同步并删除不再相关的项目至关重要。最后,请记住在不再需要 PreloadManager 时释放它以释放资源。一个演示通过与传统方法相比更快的加载时间来突出 PreloadManager 的优势。