车机架构分析
车机开发难点
1、Android系统与MCU的通信:需要开发kernel驱动、封装Framework层的接口,提供给应用层调用,对于一般的开发团队而言还是相当有挑战性的;
2、源管理:用户点击、插入U盘、挂倒档这样的用户输入需要从kernel层到Framewrok层、应用UI层的开发能力,同样也会依赖于MCU及其与MCU之间的通信;
3、按键响应:Android原生的按键响应方案不可用,需要借助MCU;
4、音频管理:除了Music/Radio/BT不同的通道类型外,还需考虑速度补偿、功耗等情况;
5、多媒体:类型很多,本地音乐、蓝牙音乐、网络音乐、FM、AM、网络电台等;
6、蓝牙:与手机蓝牙名同实不同,车机的蓝牙相当于一个大号的蓝牙耳机,其对于手机的兼容性非常困难。
车机稳定性测试
稳定性测试分平台稳定性测试和应用稳定性测试。
平台稳定性测试构成如下图所示,包括两部分内容:API稳定性和能力稳定性。API对应的是Framework层、MCU对外提供的接口;能力对应的是车机系统底层对外输出的功能,受kernel层、Framework层、MCU等影响。
API稳定性测试
针对适配层各个模块循序渐进进行单接口、正常接口交互、接口异常参数、接口稳定性的开发,以此来达到测试适配层API的目的。
MCU稳定性测试
通过adb forward将Android作为PC端测试工具与MCU的中转方,PC端测试工具发送需要测试的接口及参数给Android,Android收到后转发给MCU,MCU接受指令进行相应操作或响应,返回相关值给Android,Android再返回给PC端测试工具。
能力稳定性测试
专项稳定性测试,包括:开机、倒车、4G、热点、U盘、WI-FI。
应用稳定性测试
采用自动化手段监控Java crash、Native crash、ANR是否发生。
在发生Native crash、ANR的情况时会获取更多的日志信息。如/data/tombstones,/data/anr/traces.txt。此外,还同时对多个被测应用的内存、CPU进行监控,以此来判断ANR、Crash时是否受系统所影响;还可以根据配置修改被测应用的CPU、内存告警,在内存告警后自动触发内存的dump,并通过内存dump分析出内存泄露的问题。
作者: 千里和他的软件测试