Android Automotive 25Q4

本页介绍了 Android Automotive OS (AAOS) 25Q4 版本中的功能和增强功能。AAOS 25Q4 是正式的黄金版本。25Q4 提供了 8 项新功能,并解决了 180 个问题。

AAOS 25Q4 使用 API 级别 36。

功能

此 AAOS 版本提供了此处所述的新功能。

框架

Jetpack Compose 的旋转支持:

  • Android 14 及更高版本:AAOS 为 Jetpack Compose 界面提供基本的内置旋转支持,包括控制器旋转和轻推。

  • Android 12、Android 12L 和 Android 13:AAOS 为 Compose 界面提供有限的旋转支持。控制器旋转功能通过应用端变通方案实现。我们不支持提醒。

    如需了解详情,请参阅 RotaryPlayground 应用中的“查看 Compose activity”演示。您可以在 car-apps-dev 分支上获取此应用的源代码。

性能和系统健康状况

  • 停止之前用户的应用:为了缩短用户切换延迟时间并减少内存占用空间,系统会在用户切换过程中更早地停止之前用户的应用。

系统体验

可伸缩的界面

AAOS 新增了汽车专用窗口化解决方案,可帮助 OEM 以安全、合规且经济高效的方式开发具有可扩缩界面的高级窗口化体验。借助此框架,开发者可以使用 XML 配置中的声明性语言设计窗口结构。

  • 可伸缩界面中的任务焦点:引入了一组规则,用于确定在多窗口环境中(例如打开和关闭面板)哪个任务会获得焦点。Focus 标记中的新 onTransition 属性可提供更精细的控制。

  • 可伸缩界面中的自动重启机制:可伸缩界面面板现在可以通过重新启动有故障的应用来妥善处理应用崩溃问题。我们引入了一种自动任务重启机制,以解决界面面板中意外的任务终止问题。您可以使用新的 <Restart> XML 标记配置该机制,以定义重启政策和重试次数上限。

  • 拖动装饰面板和性能检测时的性能改进:AAOS 提升了交互式面板拖动动画的性能。此外,它还向可伸缩界面库添加了检测功能,以在关键用户体验历程中测量失调。

    OEM Perfetto 轨迹提供额外的元数据报告,专门针对窗口化和可伸缩界面库中发生的情况。

  • 面板装饰视图可适应主题变化并做出相应响应:面板主题可适应主题变化。例如,在浅色模式和深色模式之间切换,或在 SysUI 级别进行其他主题更改。

用户调试命令和开发者工具:

  • Shell 命令通过 adb 输出当前面板状态并发送事件:使用 adb 命令更改视觉面板状态,例如打开或关闭面板。

    shell 命令会触发系统上的事件。例如,如需在应用网格面板打开时将其关闭,请运行 adb shell cmd statusbar carsysui-dispatch-event close_app_grid

  • 面板状态包含在 activity dumpsys 中:activity dumpsys 包含面板状态。使用调试工具 (adb 命令) 通过 dumpsys(=adb shell 命令)获取面板状态。

    该命令在未发生视觉操作时显示当前面板状态。 命令为:

    adb shell cmd statusbar carsysui-dump-panelstates
    

OEM 日志记录和数据跟踪

  • 为汽车数据订阅事件添加了日志记录。为了改进数据跟踪,我们为原始设备制造商 (OEM) 启用了用户连接日志记录。

核心应用

为了帮助验证“适配汽车的移动应用”(CaRMA) 是否符合 CDD 和 CTS 要求,我们增强了汽车环境中第三方应用的兼容性和易用性。为了演示无缝导航的最佳实践,我们添加了返回可供性参考示例。

  • Activity 阻塞 activity (ABA) 增强功能:为了改进生命周期管理,AAOS 优化了 OnStop ABA 行为。

  • 用于应用渲染的安全矩形。为了帮助验证内容可见性并避免遮挡,AAOS 定义了一个指定的应用显示区域。

  • DPI 缩放:AAOS 会根据显示屏分辨率和观看距离优化界面元素。

  • 按应用替换项:AAOS 可让您控制应用行为,例如屏幕方向和宽高比。

  • 兼容性改进:AAOS 包含 DocumentsUI 等核心 Android 功能,并改进了与第三方应用之间的兼容性。

  • 替代应用控制:AAOS 可让用户在驾驶时控制非媒体中心音频,尤其是来自通信应用的音频。

VHAL 属性

  • 属性枚举 @SystemApi 标记:AAOS 允许第三方访问最近被指定为可供第三方应用访问的属性的枚举。

音频

  • 淡入淡出和平衡 API:AAOS 改进了第一方应用,以检索用户的当前淡入淡出和平衡设置。这些音频音量设置在点火周期内会针对每位用户保持不变。此更新可与其他用户控制的车载音频 API 中的音频设置保持一致。

隐私权

  • 《Google 服务条款》门禁:您可以停用应用,直到用户接受《Google 服务条款》为止。已停用的应用的图标会显示为灰色,以表示处于不活动状态。

    点按已停用的应用会提示用户接受《Google 服务条款》。

    在 Android 25Q4 中,此功能与 OEM 体验兼容,这些体验会将持久的 Google 体验放置在使用可伸缩界面配置的背景面板上。例如,设置为主屏幕体验的持久性 Google 地图 activity 会显示为灰色,直到用户接受 Google 服务条款门控。

合规性

AAOS 在 Cuttlefish 和内部参考硬件上使用以下 GSI 测试套件测试 Android 合规性:CTS、CTS-V、ATS、ATS-V、STS、VTS 和 CTS-on-GSI。

除了下列问题外,Android 16 代码 (android16-release) 或 Android 16 测试分支 (android16-m1-tests-dev) 中没有需要修复的故障。

我们计划在即将发布的 AOSP 版本中解决这些合规性问题。

  • CtsAppSecurityHostTestCasesRoleSecurityTest#cannotGetSmsRoleHolderForAnotherUser

  • CtsMediaHostTestCasesAudioServiceRebootHostTest#testVolumePersists_AfterReboot

  • CtsPermissionUiTestCasesPermissionTest23#testInteractiveGrant

Android 25Q4 测试失败

本部分列出了 Android 25Q4 中仅针对 Cuttlefish 的失败测试用例。失败的测试在内部参考硬件上通过。我们确认 Cuttlefish 和内部参考硬件上是否存在任何不一致的测试用例。

我们会评估 15 个连续 build 的结果,如果在此期间出现多组测试失败,则判定测试不一致。

测试用例 发生次数
CtsWindowManagerBackgroundActivityTestCases 6
CtsJvmtiAttachingHostTestCases 5
CtsViewTestCases 5
CtsStagedInstallHostTestCases 3
CtsUiRenderingTestCases27 2
CtsWindowManagerDeviceActivity 2
CtsAppOpsTestCases 1
CtsNetTestCasesLegacyApi22 1
CtsStatsdAtomHostTestCases 1
CtsUiRenderingTestCases 1