构建面向未来的灵活信息娱乐系统
尽管具备这些优势,HTML5 这样的移动应用程序环境并不总是内置人机界面的最佳基础。车外的世界充斥着不可预知的网络内容和安全隐患,对人机界面正常运行的威胁尤其令人担忧。从启动时间、性能、内存使用来看,这种环境与原生工具包仍然不可同日而语。
这是否意味着汽车公司必须从原生人机界面工具包和移动应用程序环境之间作出选择呢?其实不然。举例来说,下图显示基于QNX 车载信息娱乐平台的主机在原生工具包创建的人机界面上同时运行来自多种移动环境的应用程序。不同开发环境构建的组件在同一个显示屏上和平相处,而且彼此之间也没有明显的断层。
要成功组合这些环境,软件平台需要支持多种关键技术。首当其冲的是构图——将来自多个应用窗口的输出合并到一个显示屏上。这些窗口可能需要横向排列、重叠、混合,或是其它一些类似的操作。为了快速有效地执行这种合并,平台的图像框架应该利用图像处理器(GPU) 的硬件加速。在这样设计得当的系统里,用户无需手动切换环境,就能与用不同环境创建的组件进行互动,组件的转换也天衣无缝。
提取服务
为了将这些环境组合起来,平台还必须提供一个提取层,实现多种工具和语言创建的应用程序与系统服务的互动。例如,在一个基于发布/ 订阅式消息传递的提取层上,应用程序通过数据对象获得多种服务,例如,多媒体引擎、数据引擎、声音识别引擎、车辆总线、智能手机、蓝牙应用规范、免提电话以及联系人数据库。这些数据对象具有多种属性, 每一种属性对应一个特征,例如当前广播电台的频率或是发动机的每分钟转速(RPM)。系统服务发布这些对象并修改其属性,其它程序随即订阅这些对象,就能及时接收这些属性的更新。
理想情况中,这一个信息层是与编程语言无关,用不同语言(C、C++、 HTML5、 Java、JavaScript 等) 编写的程序,无需了解彼此的特性,也能互相交流。因此, 在像HTML5 这样的高端环境下编写的应用程序很容易接入设备驱动器提供的服务,或其他用C 语言或C++ 语言编写的低端服务。
有效控制应用
来自移动世界的应用程序有助于丰富并延伸娱乐信息系统的用户体验。尽管如此,保护汽车安全,使其免受移动应用程序类似“西部荒蛮”时期突袭是十分重要的。因此,系统软件平台必须使用一个容器将这一类应用程序隔离,以免汽车遭受恶意编码应用程序的攻击。
与时俱进
一个信息娱乐系统要与时俱进,必须支持空中(OTA)软件升级。随着汽车与快速演进的云服务和移动设备日渐相连,该需求的重要性愈为突显。理想状况下,OTA 部署将使用汽车的内置调制解调器,也可以使用智能手机连接技术,如NFC 来简化汽车- 手机配对的任务,因为许多用户发现传统的蓝牙配对很困难,而且比较耗时。
基于可行性和经济因素,OTA 更新应尽可能少地耗费时间和网络带宽。理论上,一个信息娱乐系统应该支持细粒度更新,只下载新的或修改过的软件组件。发布/ 订阅结构使更新更易于部署,因为它为软件组件间提供了宽松、灵活的连接,能更新或替换任何组件, 同时不影响与之通信的组件。一个微内核操作系统还能使设备驱动、虚拟机、文件系统、网络站以及其它系统级服务像独立进程一样运行,可动态更新,从而简化了细粒度更新。
综上所述,维持信息娱乐系统的竞争力不能简单地靠堆砌应用程序来做到。在应用程序模式中,司机必须下意识地从一个应用转换到另一个应用,从而造成驾驶分心。因此,Pandora 或Slacker 等流行的音乐服务应被无缝整合到收音机用户界面上;同样地,兴趣点或基于位置的服务应用也应被整合到导航系统中。
因此,理想的汽车应用程序其实根本不是一个应用, 而是一个插件。插件结构赋予车内自然界面以新的内容和特性,使得用户更易理解应用程序并与之互动。
评论