术语库和概念

本部分会一直用到这些术语和概念。

CarAppService
CarAppService 是一个抽象 Service 类,应用必须实现并导出该类,才能被主机发现并由主机进行管理。应用的 CarAppService 使用 createHostValidator 验证主机连接是否可以信任,随后使用 onCreateSession 为每个连接提供 Session 实例。
主机

主机是一个后端组件,它会实现库的 API 提供的功能,以便您的应用在汽车中运行。主机提供一系列服务,从发现应用并管理其生命周期,到将模型转换为视图,再到将用户交互操作通知给应用。

在移动设备上,此主机由 Android Auto 实现。在 Android Automotive OS 上,此主机作为系统应用进行安装。

模型和模板

界面由模型对象的图来表示,您可以按照它们所属的模板允许的不同方式排列在一起。模板是模型的子集,它们可以在图中充当根。

模型包含要以文字和图片的形式显示给用户的信息,以及用于配置此类信息的视觉外观各个方面的属性。例如,文字颜色或图片大小。

主机会将模型转换为符合防止驾驶员分心标准的视图,并解决一些细节问题,例如存在各种车载显示屏类型和输入模式。

Screen

Screen 是一个由库提供的类,应用实现该类来管理用户可见的界面。

Screen 具有生命周期,应用使用它来发送要在屏幕可见时显示的模板。此外,也可以将 Screen 实例推送到 Screen 堆栈以及将从该堆栈中弹出这些实例,以确认它们符合模板流限制

Session

Session 是一个抽象类,应用必须使用 CarAppService.onCreateSession 实现并返回该类。Session 充当在车载显示屏上显示信息的入口点。Session 具有生命周期,可告知车载显示屏上应用的当前状态,例如当应用可见或隐藏时。

Session 开始时(例如当应用首次启动时),主机会使用 onCreateScreen 方法询问要显示的初始 Screen

模板限制

不同的模板会对其模型的内容施加限制。例如,列表模板对可以呈现给用户的项数有限制。

模板对可以采用什么方式连接它们以形成任务流也有限制。例如,应用最多只能将 5 个模板推送到屏幕堆栈。如需了解详情,请参阅模板限制