Android Auto认证标准与CTS测试项目

2026-07-14   •   orange

Android Auto认证二六年最大的变化是Google把测试套件整体推到了AA 2.0,测试用例比旧版多了将近一半。以前投屏模式只测基础功能,现在音频路由、多屏适配、语音唤醒在车噪环境下的表现全成了必测项。Google对车机端的性能基准也收紧了,长时间持续掉帧或者触控响应延迟会在Qsuite体验打分里扣分,但AA 2.0文档没有写某个固定帧率数值作为直接淘汰条件。

现在PCTS自测工具三百多项用例跑完要好几天,正式CTS-Auto必须送授权第三方实验室执行,整体周期比旧版长不少。这篇把AA 2.0的测试标准框架和核心测试类别拆一遍,顺带说下实际送检中最常翻车的几个点。

一、AA 2.0标准框架变动

Google在AA 2.0里把测试划成了七个模块,AOAP协议测试、投屏显示、电话与通知、音频路由、Qsuite性能体验、Plugbot稳定性、VRRT车载噪声语音测试。后三块是AA 2.0新增的重点。

AOAP协议测试是基础门槛:AOAP全称Android Open Accessory Protocol,行业里口语常说的AOA就是这个东西,正式认证文档里的标准缩写是AOAP。USB枚举顺序不对、AOAP握手超时、HID触摸坐标映射错误,这三类问题是测试失败的头号原因。CTS-Auto会逐个协议状态机检查,错一个状态跳转直接挂。USB兼容性是大坑,不光是外置USB HUB芯片,车机主板自带的USB控制器(USB PHY)时序跟Google参考设计不一致,一样会搞死AOAP握手。

投屏显示这块覆盖画面分辨率适配、旋转方向切换、多窗口分屏和动态分辨率调整。AA 2.0要求支持720P到1080P的动态切换,车机屏幕分辨率和手机输出分辨率不匹配时渲染引擎要能平滑缩放不能硬切黑屏。竖屏车机是个麻烦点,很多应用默认横屏渲染,竖屏适配经常出兼容性问题。无线投屏方面,只有产品宣称支持无线Android Auto才强制跑Wi-Fi Direct整套测试,只做有线完全可以豁免,不是所有方案都要加测无线。

电话与通知模块:呼入呼出、联系人同步、通话记录显示、双卡管理、通话中导航语音提示是否压低通话音量。消息通知看短信和即时通讯App的推送、朗读、语音回复是否正常,群聊消息来了不能一整屏刷屏。

  二、Android Auto认证音频路由和语音测试

音频路由的三条路径在AA 1.0时代就已经定好了,电话音频走蓝牙HFP、媒体音频走A2DP或USB Audio、通知音走独立通道,三条路径互不串扰。这个优先级逻辑不是AA 2.0新增的。一个关键认知,Android Auto投屏场景下音频全由手机端解码,车机只做音频透传。有些项目会把整车自带播放器的5.1声道环绕声验证误当成AA认证的测试项,这俩不是一回事。环绕声测试属于车机本身的播放器范围,不计入Android Auto投屏的CTS-Auto范围。

语音交互测试走VRRT套件内置的噪声库在噪声环境里跑。判定逻辑是,噪声下语音识别由手机端Google Assistant完成,车机只负责麦克风采集和前端处理。波束成形、回声消除这些优化的是收音质量,最终识别率判定权在手机端,不能把识别结果归因到车机算法头上。

  三、送检关键点

PCTS是厂商自测工具,三百多项用例全在里面:提交给Google后台的是精简版合规自查清单,不是把三百多项全部填一遍。正式CTS-Auto测试必须由授权第三方实验室执行,厂商手里只有PCTS自测版,两个不是同一个东西。Pixel手机是Google强制必测机型,三星和国产旗舰属于兼容性验证,行业里通常加测但不是官方硬性要求。

固件版本送检前冻结:AA 2.0引入了项目分组和CER豁免机制,只改上层UI界面、动画效果、颜色布局这类,底层AOAP协议栈和USB时序完全没动,提交变更说明就能过。真正需要复测的是动了AOAP协议栈、USB枚举时序、触控坐标映射逻辑、音频路由优先级这些底层东西。把HMI渲染引擎改动全算重大变更过于一刀切,得看改的是表层还是底层。


Android Auto认证标准与CTS测试项目可联系蓝亚技术检测认证机构顾问 13632500972(Benson)

<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6844225bf949cff65b89ec7139b9ad0f"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>